gpt4 book ai didi

python - pandas,matplotlib,使用数据帧索引作为轴刻度标签

转载 作者:太空狗 更新时间:2023-10-29 20:46:12 24 4
gpt4 key购买 nike

我正在使用 matplotlib 的 imshow() 函数来显示 pandas.DataFrame

我想从 DataFrame.index 和 DataFrame.columns 列表中绘制 x 轴和 y 轴的标签和刻度,但我不知道该怎么做。

假设 data 是一个 pandas.DataFrame:

>>> print data
<class 'pandas.core.frame.DataFrame'>
Index: 201 entries, 1901 to 2101
Data columns:
jan 201 non-null values
feb 201 non-null values
mar 201 non-null values
apr 201 non-null values
may 201 non-null values
jun 201 non-null values
jul 201 non-null values
aug 201 non-null values
sep 201 non-null values
oct 201 non-null values
nov 201 non-null values
dec 201 non-null values

当我这样做时:

ax1 = fig.add_subplot(131, xticklabels=data.columns, yticklabels=data.index)
ax1.set_title("A")
ax1.tick_params(axis='both', direction='out')
im1 = ax1.imshow(data,
interpolation='nearest',
aspect='auto',
cmap=cmap )

我最终在图像的 y 轴上得到了间隔很好的刻度标签,但标签是 1901-1906 而不是 1901 到 2101。同样,x 轴刻度标签是 feb-jul 而不是 jan-dec。

如果我用

ax1 = fig.add_subplot(131) # without specifying tick labels

然后我最终得到的轴刻度标签只是底层的 ndarray 索引值(即 0-201 和 0-12)。我不需要修改刻度和标签的间距或数量,我只希望标签文本来自 DataFrame 索引和列列表。不确定我是否遗漏了一些简单的东西?

提前致谢。

最佳答案

我认为这个问题与为现有刻度指定刻度标签有关。默认情况下,刻度比标签少,因此只使用前几个标签。以下应该首先设置滴答数。

ax1 = fig.add_subplot(131)
ax1.set_title("A")
ax1.tick_params(axis='both', direction='out')
ax1.set_xticks(range(len(data.columns)))
ax1.set_xticklabels(data.columns)
ax1.set_yticks(range(len(data.index)))
ax1.set_yticklabels(data.index)
im1 = ax1.imshow(data, interpolation='nearest', aspect='auto', cmap=cmap)

这会在 y 轴上为每年生成一个刻度,因此您可能希望使用索引值的子集。

关于python - pandas,matplotlib,使用数据帧索引作为轴刻度标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11586989/

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