How to use Python Visuals in Power BI

Shreyanshi shah
Analytics Vidhya
Published in
5 min readSep 5, 2020

Data Science is the new talk in town so comes the visualization and analytics of Data. Power BI has been the prominent tool for easing out visualizations but for complex data integration python libraries are essential.

The addition of Python integration in Power BI is one of the greatest things that Microsoft could have done. This gives the user the ability to utilize amazing visual libraries, here I will give quick guide for Seaborn library. Beyond visualization, you can also utilize some of the machine learning packages.

The first thing you will need is the latest version of Power BI, this will have the Python integration in the preview features, you can enable this and then restart. Just go to your options and enable the feature.

Use the Python Script Editor and Visual Tile

1. Click the Python visual within the Visualization panel. This will open the script editor window at the bottom of the page.

When this icon is clicked, the script editor opens with a visual tile that is empty. I am using Google Analytics data to make my dataset.

2. You will need to add your values to build your dataset by selecting the fields which will fill your values section to create the data you will use in a visual. Once you have the dataset built you will see it as a pandas data frame which can be thought of as a table.

3. Now you will need to import some libraries to ensure you can create the visuals. use the following script to import Matplotlib and Seaborn. We are using abbreviations of plt for and seaborn to make our code more efficient.

import matploblib.pylot as plt
import seaborn as sns

Violin Plot with Seaborn Libary

This imports the visuals library that will allow you to create some cool visuals. Now let’s build some plots aka visuals. Since we have the first part of the code, let’s add to the code to get the visuals we want. The first visuals we will create is a violin plot. We are going to use the values that we added in which creates our dataset.

Paste the Code:

import matploblib.pylot as plt
import seaborn as sns
sns.violinplot(x='Device',y='Session Duration',data=dataset)
plt.show()

Using this code will produce a violin plot which will show you where the concentration of session duration is on the y-axis by the device.

We can see from the desktop has a higher amount of outliers with higher session durations than any other device. We can evaluate the gender by simply changing the x-axis to gender.

Create a Joint Plot

The next plot is going to joint plot. This works off the same backbone of code that you’ve already built using the violinplot. The only difference is that you are going to exchange sns.violinplot for sns.jointplot. However, a joint plot is a modified scatter plot so your X and Y variables will need numerical. For this example, I wanted to know if there was a correlation between session duration and goal completions. you can see from my code below that I exchange that I used Session Duration as my x-axis and Goal Completions my y-axis

Paste the Code:

import matplotlib.pyplot as plt
import seaborn as sns
sns.jointplot(x='Session Duration', y='Goal Completions', data=dataset)
plt.show()

This plot doesn’t award me a lot of insights into my goal completions. We can change the x variable into page views to see if we get a better correlation score which is listed in the top right.

Create a Heatmap Correlation Plot

Now we have to create some correlation based on our dataset. This is a good way to do some exploratory data analysis. We can do this by using a heat map which is a very powerful visual. Since we are going to be evaluating the whole dataset, we don’t need to define the x and y-axis. We can get a correlation score for every variable.

Paste the Code:

import matplotlib.pyplot as plt
import seaborn as sns
sns.heatmap(dataset.corr(),cmap='coolwarm')
plt.show()

The code takes in the whole dataset, I added a color gradient called ‘coolwarm’ however you can explore tons of color gradient. This was added with the cmap parameter. You can check out the Seaborn website to see other colors scales you can use.

To have proper understanding we can customize it by adding labels and line width. This will make the heat map more actionable by displaying the correlations.

Paste the below Code:

import matplotlib.pyplot as plt
import seaborn as sns
sns.heatmap(dataset.corr(),cmap='coolwarm', annot = True, linewidth =0.7)
plt.show()

Create a Seaborn Pair Plot

The last plot here is the easiest to create. Its called a pair plot which is essentially an aggregation of all your dataset correlation similar in separate graphs. It gives you a quick and simple look at your correlations for deeper exploration.

Paste the below Code:

import matplotlib.pyplot as plt
import seaborn as sns
sns.pairplot(dataset)
plt.show()

Then you can show these visualizations as a proper report in anyway convenient to you.

--

--

Shreyanshi shah
Analytics Vidhya

Product Manager | Being a creative writer always has paved my way through expressing my Ideas.