为了账号安全,请及时绑定邮箱和手机立即绑定

Seaborn 图未显示在轴上

Seaborn 图未显示在轴上

UYOU 2021-06-13 15:10:46
我有一个如下所示的 Pandas DataFrame:counts = pd.DataFrame({'Pair A': {8: 4, 9: 1, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0}, 'Pair B': {8: 4, 9: 2, 10: 1, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0}, 'Pair C': {8: 3, 9: 2, 10: 1, 11: 1, 12: 1, 13: 1, 14: 1, 15: 1}, 'Pair D': {8: 2, 9: 1, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0}})我只是使用以下代码使用 DataFrame 的一部分创建一个简单的图:plt.figure()sns.set_palette("pastel")temp = pd.DataFrame(counts).drop([0,1,2,3,4,5,6], axis='index')temp.index = temp.index + 1temp.plot()sns.set_style('ticks')plt.ylabel('title')plt.xlabel('xlabel')plt.title('title')plt.xticks(range(len(temp.index)), temp.index, rotation=45)plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))sns.despine(offset=10, trim=True)plt.xticks(rotation=45)但它会产生如下所示的图像:如何将绘图居中在 x 轴上?
查看完整描述

2 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

这似乎是:

plt.xticks(range(len(temp.index)), temp.index, rotation=45)

导致问题,如果替换为:

plt.xticks(temp.index, temp.index, rotation=45)

一切都按预期工作。


查看完整回答
反对 回复 2021-06-15
?
精慕HU

TA贡献1845条经验 获得超8个赞

当您调用plt.xticks, 并提供 2 个位置参数时,第一个参数变为locs标签将出现的 x 值,第二个变为labels刻度标签值。因此,plt.xticks(range(len(temp.index)), temp.index, rotation=45)您在位置 0、1、2、3.... 处绘制 x 刻度标签,而您的数据在不同的范围内(8、9、10....)。

因此,如果您想自定义标签,您可以更改label部分,例如plt.xticks(temp.index, ['x%s'% v for v in temp.index], rotation=45).


查看完整回答
反对 回复 2021-06-15
  • 2 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信