gpt4 book ai didi

pandas - Xticks by pandas情节,使用字符串重命名

转载 作者:行者123 更新时间:2023-12-03 11:45:01 24 4
gpt4 key购买 nike

我有下一个DF:

A B  C
1 2 'name 1'
2 3 'name 2'
3 5 'name 3'

绘制 A列并将 C列用作xticks的正确顺序是什么?
df['A'].plot(xticks = 'C')
df['A'].plot(xticks = df['C'])

两者都不起作用...例如,无论如何它都起作用
df['A'].plot(xticks=[1,2,3])

我真的应该转换为序列吗?
我也对此问题进行了修改。我收到下一个错误消息:
ValueError: could not convert string to float: name 3

我有一串字符串,想在我的情节中用作xticks。

PS

它不直接与pandas plot函数配合使用。我找到了解决方案here

最佳答案

您提供的链接是一个很好的资源,但是使用matplotlib.pyplot显示了整个过程,并使用.subplots()到达了坐标轴。在完成此操作之前,我一直在寻找尽可能多地使用内置 Pandas 的.plot()函数的方法。对我来说,它可以简化代码,并更轻松地利用DataFrame的优点。

但是,在df.plot()参数本身中似乎有很多事情很难完全完成。幸运的是,它返回了matplotlib.AxesSubplot,它提供了更大的可能性。

我将上面的数据复制到了DataFrame中:

df = pd.read_clipboard(quotechar="'")

看起来有点像:
   A B  C
0 1 2 'name 1'
1 2 3 'name 2'
2 3 5 'name 3'

但是,当然,在非表格限制的html中要好得多。 (也许这样会解决这一天)。

然后,我要做的就是:
ax = df.A.plot(xticks=df.index, rot=90)
ax.set_xticklabels(df.C)

如果您使用的是IPython / Jupyter和 %matplotlib inline,则这两个都必须位于同一单元格中。我一开始就忘记了这一点,并花了很多时间试图找出问题所在。

您可以使用 ax变量来完成所有操作:
 ax = df.A.plot()
ax.set_xticks(df.index)
ax.set_xticklabels(df.C, rotation=90)

但是,正如我提到的,我还没有在 xticklabels函数参数中找到通往 df.plot()的方法,这使得可以在一行中完成所有操作。

在此示例中,旋转xtick标签的额外步骤可能是多余的,但是在寻找此答案时,在我正在尝试的步骤中派上了用场。

当然,您可以更轻松地将A和B列绘制在一起:
 ax = df.plot()
ax.set_xticks(df.index)
ax.set_xticklabels(df.C, rotation=90)

关于pandas - Xticks by pandas情节,使用字符串重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26358200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com