【问题标题】:How to plot a Python Dataframe with category values like this picture?如何绘制具有像这张图片这样的类别值的 Python 数据框?
【发布时间】:2016-11-22 01:55:57
【问题描述】:

如何使用 matplotlib 实现这一点?

【问题讨论】:

  • 这个问题太笼统了。这个stanford.edu/~mwaskom/software/seaborn/examples/… 是一个起点。
  • 好吧,我想要相同颜色的相同单元格类别,热图看起来像这样但不完全!
  • 你可以分配一个离散的颜色图来分成类。 matplotlib.org/examples/api/colorbar_only.html
  • 这是一个很好的例子。 stackoverflow.com/questions/20998083/… 只需使用另一个颜色图 [离散的] 和您想要的文本。如果您需要进一步的帮助,您至少应该分享您的数据或其中的一部分。
  • 没有。我宁愿不将我的邮件帐户提供给我不认识的人。请使用 Dropbox、Google 或 Office 工具,或仅使用几行和几列重新采样您的数据。另外,我不会为你解决整个问题。鉴于我在上面给出的宝贵指示,您应该自己尝试一下。

标签: python python-2.7 python-3.x matplotlib dataframe


【解决方案1】:

这是我的代码以及您提供的数据。由于没有课程[尽管您的问题中的第一个示例确实有课程,但它们都是不同的],因此我根据数字给出了颜色。你绝对可以从这里单独开始,无论你想达到什么结果。你只需要pandasseabornmatplotlib

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# import xls
df=pd.read_excel('data.xlsx')
# exclude Ranking values
df1 = df.ix[:,1:-1]
# for each element it takes the value of the xls cell
df2=df1.applymap(lambda x: float(x.split('\n')[1]))

# now plot it
df_heatmap = df2
fig, ax = plt.subplots(figsize=(15,15))
sns.heatmap(df_heatmap, square=True, ax=ax, annot=True, fmt="1.3f")
plt.yticks(rotation=0,fontsize=16);
plt.xticks(fontsize=12);
plt.tight_layout()
plt.savefig('dfcolorgraph.png')

这会产生以下图片。

【讨论】:

  • 如果您非常喜欢它,您可以投票认为它有用.. ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-05
  • 1970-01-01
相关资源
最近更新 更多