Python df.plot:如何让xaxis从数据帧的第一行开始

2024-06-17 07:56:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个12行2列的数据框(月和y值)。我使用了numpy.roll,所以数据帧中的第一行是June。换言之:

Dataframe

当我将这个数据帧绘制为条形图时,我得到了我想要的,其中x轴从“6”开始,在“5”结束:

monthlyAvg.plot(x='Month', y='NDVI',kind = 'bar',ylim = (0.45,0.65))

Bar graph

但是,如果我将种类更改为折线图,x轴从1开始,有一条长线从1延伸到12:

Line graph

如何更改轴,使其从6开始,如条形图


Tags: 数据numpyplot绘制bar条形图roll种类
1条回答
网友
1楼 · 发布于 2024-06-17 07:56:46

这是因为条形图将x轴值视为分类变量,并按输入顺序保留,而线形图将x轴值视为数字,并相应地对其进行排序

要使用折线图获得所需的输出,必须将x轴月份数转换为字符串,以便将其视为分类变量。以下是如何:

import matplotlib.pyplot as plt
monthlyAvg = pd.DataFrame({'Month':[6,7,8,9,10,11,12,1,2,3,4,5], 'NDVI':[0.59,0.56,0.53,0.54,0.55,0.56,0.55,0.59,0.59,0.57,0.59,0.60]})

plt.plot(monthlyAvg['Month'].astype('str'), monthlyAvg['NDVI'])
plt.ylim(0.45,0.65)
plt.xlabel('Month')
plt.ylabel('NDVI')
plt.show()

enter image description here

相关问题 更多 >