【发布时间】:2018-03-24 13:40:36
【问题描述】:
我有一个看起来像这样的 Pandas 数据框(“df”):
Variable1 Var2 Parameters Values
0 10.000 1.1 0.296342 0.170009
1 10.015 1.1 0.297013 0.168656
2 10.030 1.1 0.297659 0.167326
3 10.045 1.1 0.298282 0.166018
4 10.060 1.1 0.298883 0.164731
5 10.075 1.1 0.299462 0.162223
... ... ... ... ...
4038 24.565 1.0 0.563698 0.222069
使用以下命令旋转数据框,
# Pivot dataframe
df = df.pivot('Var2', 'Variable1', 'Values')
我得到以下旋转数据框:
Variable1 10.000 10.015 10.030 10.045 10.060 10.075 \
Var2
1.0 0.219987 0.218130 0.216290 0.214465 0.212654 0.210856
1.1 0.170009 0.168656 0.167326 0.166018 0.164731 0.163467
1.2 0.133185 0.132202 0.131230 0.130269 0.129318 0.128378
1.3 0.104472 0.103893 0.103312 0.102729 0.102147 0.101564
Variable1 ... 24.865 24.880 24.895 24.910 24.925
Var2 ...
1.0 ... 0.212118 0.211691 0.211272 0.210860 0.210456
1.1 ... 0.174883 0.174566 0.174257 0.173956 0.173662
1.2 ... 0.147406 0.147154 0.146907 0.146664 0.146425
1.3 ... 0.126780 0.126616 0.126456 0.126301 0.126150
但是,当我尝试使用 Seaborn 的 heatmap 使用以下命令对此进行成像时:
# Pivot dataframe
df = df.pivot('Var2', 'Variable1', 'Values')
# Create heatmap
f, ax = plt.subplots(figsize=(20, 10))
sns.heatmap(df)
ax.xaxis.set_major_locator(ticker.MultipleLocator(20))
ax.xaxis.set_major_formatter(ticker.ScalarFormatter())
plt.show()
我得到一个显示变量 1 的索引 (0,1,2,3,4,...) 的图,而我需要它来显示变量 1 的 值 (10, 10.015 、10.030、10.045 等)。我已经包含了一个示例来说明。
我错过了什么?
【问题讨论】:
-
您能否包含部分旋转的
df? -
@akilat90 -- 很抱歉,我跑题了。我纠正了我的问题。我之前拥有的是旋转数据框。我已经包含了原始数据框的示例。
-
我在您提供的样本数据上遵循了与您相同的步骤,并且能够使用 seaborn 0.7.1 获得热图
-
@akilat90 - 您的 x 轴读取了 Variable1 的正确值?如果有什么不同,我会在 Jupyter Notebook 中运行它。
-
是的,看我的回答
标签: python-2.7 pandas dataframe heatmap seaborn