Power BI数据框表可视化

时间:2020-02-05 13:19:12

标签: python pandas matplotlib powerbi

Power BI具有Python可视化元素。它从Power BI数据源的字段创建数据框,然后使用matplotlib.pyplot.show()方法对其进行可视化。

我需要以表格形式显示数据框(能够根据不同的数据条件为单元格着色)

问题在于,即使在Anaconda中工作时,数据框的表可视化示例也无法在Power BI Py元素内工作(并且没有说明问题所在)。

有人可以显示Power BI数据框表可视化的工作示例吗?

1 个答案:

答案 0 :(得分:3)

我在一个数据框中创建了数据,以使示例保持简单。这也可能是操纵的结果。

import pandas as pd
dataset = pd.DataFrame({'a': range(0,20,2), 'b': range(10,30,2)})
print(dataset)

    a   b
0   0  10
1   2  12
2   4  14
3   6  16
4   8  18
5  10  20
6  12  22
7  14  24
8  16  26
9  18  28

在新的Power BI文件中,

1. Get Data/More/Other/Python Script

粘贴:

dataset = pandas.DataFrame({'a': range(0,20,2), 'b': range(10,30,2)})
# Note the use of pandas, not pd

在“导航器”窗口中,在Python下选择“数据集”

如果要操作数据,请选择“加载或转换数据”。

一旦加载,您就可以像其他任何表格一样可视化并使用数据。

Python Data with color for values

编辑

由于未重点解决问题,因此将其关闭。我认为这就是操作人员正在寻找的东西。

在Power BI中,通过python脚本创建数据集,如下所示:

dataset = pd.DataFrame(np.random.randn(10, 8), columns=list('abcdefgh'))

使用matplotlib.pyplot从表中创建热图。您可以比本示例更广泛地控制热图。

因此,在Power BI的可视化中,添加以下python脚本(取自Conditional formatting for 2- or 3-scale coloring of cells of a table):

# The following code to create a dataframe and remove duplicated rows is always executed and acts as a preamble for your script: 

# dataset = pandas.DataFrame(a, b, c, d, e, f, g, h)
# dataset = dataset.drop_duplicates()

# Paste or type your script code here:

import pandas as pandas
import numpy as np
import matplotlib.pyplot as plt


#Round to two digits to print nicely
vals = np.around(dataset.values, 2)
#Normalize data to [0, 1] range for color mapping below
normal = (dataset - dataset.min()) / (dataset.max() - dataset.min())

fig = plt.figure()
ax = fig.add_subplot(111)
ax.axis('off')
the_table=ax.table(cellText=vals, rowLabels=dataset.index, colLabels=dataset.columns, 
                   loc='center', cellColours=plt.cm.RdYlGn(normal),animated=True)

plt.show()

您将获得:

Matplotlib heatmap

如果刷新数据,脚本将创建一个新的热图,如果您更新正在使用的任何数据,这将在Power Bi中发生。希望这会有所帮助。