首页 > 解决方案 > Power BI 中的 Python - 在 matplotlib.pyplot.matshow 中显示列名而不是数字

问题描述

我在 Power BI 中有一个类似于以下的数据集:

last_updated    product     price
01-01-2019      Cycle       1000
02-01-2019      Cycle       1010
01-01-2019      Helmet      200
02-01-2019      Helmet      190

基本上,我想让用户从过滤器中动态选择一些产品,然后让 Python 旋转数据并绘制相关矩阵。

这只是我使用 Python 的第二天,但我已经设法编写了以下代码。

dataset = dataset.pivot(
    index = 'last_updated',
    columns = 'product',
    values = 'price'
)

matplotlib.pyplot.matshow(dataset.corr('pearson'))

matplotlib.pyplot.show()

它按预期工作,但显示 0、1、2 等,而不是 Cycle、Helmet、...

如何将刻度标签动态设置为列名?

我看到一些示例使用 set_xticklabels(),但我无法弄清楚如何使用它来设置文字字符串,更不用说动态列名了。

标签: pythonpowerbi

解决方案


就这样解决了...

import seaborn as sns

dataset = dataset.pivot(
    index = 'last_updated',
    columns = 'symbol',
    values = 'cumulative_return'
)

corr = dataset.corr('pearson')
sns.heatmap(corr, annot=True, xticklabels=corr.columns, yticklabels=corr.columns)
matplotlib.pyplot.show()

推荐阅读