Sitting down with StackOverflow power contributor, Arne Petter Drageset, aka vestland
794 answers, 3.0m reached, 379 badges, top 0.15% this month…these are impressive stats for the StackOverflow community.
At Plotly, vestland caught our eye when he became the first in the world to earn the Plotly gold badge on StackOverflow back in 2021. Taking a look at his contributions, we soon discovered his forthcoming attitude towards anyone seeking programming assistance, and his consistent high quality answers. Now, one year later, he still ranks at the very top of the list of Plotly contributors on StackOverflow. So we asked him if he would like to sit down with us to talk about his background and how he became passionate about data visualization and contributing to the community. He said yes!
Can we start by having you tell us a bit about yourself?
First of all, despite the amount of time I spend on this, programming isn’t my formal educational background. I’ve got a master’s degree in Finance and Business Strategy from NHH Norwegian School of Economics, where the main tools of the trade back then were Excel, and for those extra-adventurous people, VBA.
Since 2006, I’ve been working in the energy sector. Through the years I’ve spent quite some time in search of the perfect toolset for any business intelligence or data science challenge that should come my way. None of the numerous software standards (not mentioning any names other than PowerBI which Microsoft after all is doing great things with) ever really felt flexible, powerful, or feature-rich enough. With Python, Pandas, Plotly and Dash I’ve finally found everything I’ve been looking for. At least when it comes to working with data. When I’m not doing that, I love spending time with my family, running around in the mountains of western Norway, or finding myself all alone on a snowy mountaintop accompanied only by my snowboard.
Can you tell us about how you came to be so passionate about Python and Plotly?
Plotly checks all the boxes
I was amazed when I saw the animated scatter plot above for the first time, but let’s get back to that in a minute and sort out some details first. Python and Plotly enable me to analyze any data of any form, create stories through awesome visualizations, and share my creations through Plotly’s Dash. And every time I touch anything Plotly or Python related, I learn something new to enhance my skillset.
No matter what I do, not one single second feels wasted. And it doesn’t matter if it’s taking on other people’s challenges, reading through endless (but awesome) docs, fiddling around with the plotly figure structures, or combining Plotly Dash layouts and callbacks in ways that still amaze me. Everything has value in one way or another. I’m obviously not the only one who has felt that way either. Because Plotly has become so essential for data visualization, its Python and R interactive graphing libraries were the most downloaded in the world starting in 2015. At work, we’ve also hired young talents with great success because they had a good grasp of Python and Plotly fundamentals.
What about StackOverflow, can you tell us a bit about that journey?
R, Python, and Plotly with PowerBI
To me, StackOverflow is an absolutely invaluable resource when it comes to anything programming related. If you’re searching the internet for a particular problem, you’re most likely going to find an existing solution there. And if you don’t, that’s even better! Because then you get the privilege to be the first one to ask about it. And when someone else searches for the same thing later, your post might just be the one that pops up in the search engine! More often than not, you’ll get the help you need. Of course that depends on the topic, or tag you’re working with. Without the amazing assistance from the great contributors under the
Pandas tags, I might never have been able to step out of the boundaries of the earlier mentioned standard business-intelligence tools.
Later, as I was gradually making the switch from asking to answering questions, my StackOverflow journey became tightly knit with my Plotly journey. A few years ago, we had just started using PowerBI in a big way at work. However, I needed to solve a very specific problem and make a few visualizations to go along with it. This particular case proved impossible in PowerBI, but turned out to be a breeze with Plotly. So I spent a lot of time studying how to get R, Python, and Plotly to work within the PowerBI framework, and decided to write up a complete way to do this on StackOverflow myself. Getting this to work felt fantastic.
Plotly == Possibilities
But if you could get Plotly figures running in PowerBI, of all things, what else could Plotly do? Instead of feeling content with my solution, I was left with an urge to dig deeper into Plotly.
During this process I ended up asking a question on StackOverflow that later turned out to be decisive to my relationship with Plotly. You see, I got an answer directly from one of the developers. And a while later, the staff at Plotly even included exactly what I was looking for as a new method for
fig.full_figure_for_development(). Getting in touch with the people behind Plotly was thrilling enough in itself, but getting this response made me feel that I had made a slight influence on the direction Plotly was taking. It didn’t even matter how true that was, because from that moment I was fully committed to the Plotly cause, and really felt the urge to join the ranks of those who were able to answer Plotly questions on StackOverflow. Finally, I had found a technology deserving of my time and full attention!
My turn to contribute
Now I feel that I’m working with data analysis and visualization in such an efficient way that it has given me the possibility to spend quite some time answering Plotly questions on StackOverflow. I especially like finding questions where the comments tell the original poster that what they are trying to do isn’t possible. Coming up with a solution that people think cannot exist is what I love the most.
And if what the asker is trying to achieve proves to be technically impossible, I shift my focus towards enabling them to tell the story they are trying to convey, instead of showing the exact figure or dashboard they’re trying to build. After all, visualization is really about storytelling and not only pretty pictures. And the Plotly toolbox is more than flexible enough to get any message through if you know how to put the bits and pieces together.
Is there anything you’d like to share with the broader Plotly community??
If I can do it, so can you!
First of all, to those of you who consider yourselves seasoned Plotly users and contributors, you’re awesome! Every single one of you!
And If you’re one of those sitting on the fence with Plotly (and Python), perhaps because of limited programming experience, don’t be afraid to jump right in. If you’re able to write a nested if-sentence in Excel, or a simple DAX expression in PowerBI, I can assure you that you have the mental capacity to master Plotly and Python. Just take any beginners class in Python (and perhaps pandas), focus a bit on dictionaries that form the structure of any plotly figure object, and you’ll soon be ready to go. Your next step should be Plotly Express. If you’re already working with data, I can guarantee you that you will find ideas, visualizations, and approaches there that will revitalize your workflow.
More on data visualization and storytelling
We’ve already established that visualization is primarily about creating insight through storytelling, and not about making pretty pictures. If you’d like to know how to do both, you should take a look at the work by famous Swedish statistician Hans Rosling, whose perhaps most famous visualization is the animated bubble chart describing, among other metrics, GDP and population through time and across geographic areas:
This brings us right back to why I became so committed to Plotly, because you can create a similar fully interactive figure, like the one at the top of this article, with only these 6 lines of code:
import plotly.express as px
df = px.data.gapminder()
px.scatter(df, x="gdpPercap", y="lifeExp", animation_frame="year", animation_group="country", size="pop", color="continent", hover_name="country", log_x=True, size_max=55, range_x=[100,100000], range_y=[25,90])
Awesome, right? And I think you too should give it a go right away. If you meet any obstacles, you should know that there’s a small but highly active army here to help you. If you need a perfect / canonical answer from the creators themselves that can’t be found anywhere else, you should go to the community forum. But remember, their primary objective is to keep creating wonderful Plotly stuff, so make sure to ask the question in the best way possible.
And of course, don’t forget StackOverflow/Plotly where a bunch of us will race each other in order to help everyone that has a Plotly challenge. In fact, with so much talent gathered in one place, there are almost not enough questions to go around. So please don’t be afraid to ask questions, but do consider learning how to ask a good question, and provide a sample of your data so we can spend our time solving your problem as opposed to recreating it. There aren’t many questions that have not been answered as long as it proves reproducible. If you find one, let us know!
See you around!