【问题标题】:How to change x- and y-axis ticks with categorical variables in Python matplotlib?如何在 Python matplotlib 中使用分类变量更改 x 轴和 y 轴刻度?
【发布时间】:2020-01-08 22:15:13
【问题描述】:

我想根据两个分类变量绘制汽车的平均价格(数值变量),车身尺寸(“convertibe”、“hardtop”、“hatchback”、“sedan”、“wagon”)和驱动轮(热图中的“四轮驱动”、“前轮驱动”、“后轮驱动”)。

数据框:

   drive-wheels   body-style         price
0           4wd    hatchback   7603.000000
1           4wd        sedan  12647.333333
2           4wd        wagon   9095.750000
3           fwd  convertible  11595.000000
4           fwd      hardtop   8249.000000
5           fwd    hatchback   8396.387755
6           fwd        sedan   9811.800000
7           fwd        wagon   9997.333333
8           rwd  convertible  23949.600000
9           rwd      hardtop  24202.714286
10          rwd    hatchback  14337.777778
11          rwd        sedan  21711.833333
12          rwd        wagon  16994.222222

使用此代码:

df_test = df[["drive-wheels", "body-style", "price"]]
df_grp = df_test.groupby(["drive-wheels", "body-style"], as_index=False).mean()
print(df_grp)
df_pivot = df_grp.pivot(index="drive-wheels", columns="body-style")
print(df_pivot)
plt.pcolor(df_pivot, cmap="RdBu")
plt.colorbar()
plt.xlabel("body-style")
plt.ylabel("drive-wheels")
plt.show()

我得到以下结果:

但是,我希望两个轴都标有它们的分类值,如下所示:

如何在分类值中标记刻度?

【问题讨论】:

标签: python pandas matplotlib


【解决方案1】:

这可以使用Seaborn library 轻松完成:

删除代码的 plt 部分并插入此代码:

import seaborn as sns

df_pivot = df_pivot.fillna(0)
sns.heatmap(df_pivot, cmap="RdBu")

【讨论】:

  • 不客气。如果这可以解决您的问题,请随时单击我的答案旁边的复选标记。 :)
  • 附注:为了保持轴不旋转,请使用:plt.yticks(rotation=0) :)
猜你喜欢
  • 2012-03-14
  • 2020-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多