gpt4 book ai didi

python - 在 Pandas DataFrame 绘图中指定 y 数组和绘图标签会更改数据框的索引标签/名称吗?

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

我有一个 pandas DataFrame,其索引标签名为“RowNumber”。

import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(data=np.random.rand(5,3), index=np.arange(5), columns=['A', 'B', 'C'])
df.index.name='RowNumber'
df

Out[1]:
A B C
RowNumber
0 0.994063 0.068659 0.158425
1 0.116639 0.109248 0.160374
2 0.086689 0.269934 0.060204
3 0.794417 0.988650 0.306970
4 0.193915 0.230677 0.414131

我绘制了一个带有图例的误差条图。

df.plot(y='B', yerr='C', label='Test')
plt.legend(loc=0)

enter image description here

但这会将index_column 的标签/名称更改为“Test”。

             A         B         C
Test
0 0.994063 0.068659 0.158425
1 0.116639 0.109248 0.160374
2 0.086689 0.269934 0.060204
3 0.794417 0.988650 0.306970
4 0.193915 0.230677 0.414131

为什么?我想绘制一个数据框,而不是更改它。即使使用简单的线图(不仅仅是错误图),只要指定 y=...label=...,也会发生这种情况。

最佳答案

在对 df.plot 的调用中设置标签参数会更改 DataFrame 的索引名称 ( source code ):

        label = kwds.pop('label', label)
ser = frame[y]
ser.index.name = label

您可能希望将此设置为 an issue ,但考虑到这是绘图方法的工作方式,您可以在对 plt.legend 的调用中设置标签:

df.plot(y='B', yerr='C')
plt.legend( ('Test',), loc=0 )
plt.show()

enter image description here

这使得 df.index.name 保持不变。

In [10]: df.index.name
Out[10]: 'RowNumber'

关于python - 在 Pandas DataFrame 绘图中指定 y 数组和绘图标签会更改数据框的索引标签/名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26068598/

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