Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pyplot上的多个x标签_Python_Matplotlib_Seaborn - Fatal编程技术网

Python Pyplot上的多个x标签

Python Pyplot上的多个x标签,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,下面是我的直线图代码。我想在当前标签下再加一个x标签(这样我可以显示一周中的几天) 编辑:在遵循文档之后,我有两个问题。比例从31变为16,一周中的天数与天数不一致 data['DAY']=["01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31

下面是我的直线图代码。我想在当前标签下再加一个x标签(这样我可以显示一周中的几天)

编辑:在遵循文档之后,我有两个问题。比例从31变为16,一周中的天数与天数不一致

data['DAY']=["01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"]

tick_labels=['1','\n\nThu','2','\n\nFri','3','\n\nSat','4','\n\nSun','5','\n\nMon','6','\n\nTue','7','\n\nWed','8','\n\nThu','9','\n\nFri','10','\n\nSat','11','\n\nSun','12','\n\nMon','13','\n\nTue','14','\n\nWed','15','\n\nThu','16','\n\nFri','17','\n\nSat','18','\n\nSun','19','\n\nMon','20','\n\nTue','21','\n\nWed','22','\n\nThu','23','\n\nFri','24','\n\nSat','25','\n\nSun','26','\n\nMon','27','\n\nTue','28','\n\nWed','29','\n\nThu','30','\n\nFri','31','\n\nSat']
tick_locations = np.arange(31)

plt.figure(figsize=(15,8))

plt.xticks(tick_locations, tick_labels)
plt.plot('DAY','SWST',data=data,linewidth=2,color="k")
plt.plot('DAY','WMID',data=data,linewidth=2,color="m")     

plt.xlabel('DAY', fontsize=20)
plt.ylabel('VOLUME', fontsize=20)
plt.legend()

plt.show()

您正在寻找的pyplot函数是
plt.xticks()
。这实际上是
ax.setxticks()
ax.setxticklabels()

从:

参数:

滴答声:像数组一样

应放置记号的位置列表。你可以通过考试 空列表以禁用XTICK

标签:

array_like,可选在给定位置放置的显式标签列表 locs

您可能需要下面的代码。注意:您可能应该明确设置记号位置和标签,以避免将标签设置在错误的位置:

tick_labels = ['1','\n\nThu','2',..., '31','\n\nSat')
plt.xticks(tick_locations, tick_labels)
请注意,面向对象的API(即使用
ax.
)允许更多可定制的绘图

更新

编辑后,我看到您要在下面显示的标签是同一列表的一部分。因此,标签列表的长度实际上是62。因此,您需要将列表中的每两个元素连接在一起:

tick_labels=['1','\n\nThu','2','\n\nFri','3','\n\nSat','4','\n\nSun','5','\n\nMon','6','\n\nTue','7','\n\nWed','8',
             '\n\nThu','9','\n\nFri','10','\n\nSat','11','\n\nSun','12','\n\nMon','13','\n\nTue','14','\n\nWed','15',
             '\n\nThu','16','\n\nFri','17','\n\nSat','18','\n\nSun','19','\n\nMon','20','\n\nTue','21','\n\nWed','22',
             '\n\nThu','23','\n\nFri','24','\n\nSat','25','\n\nSun','26','\n\nMon','27','\n\nTue','28','\n\nWed','29',
             '\n\nThu','30','\n\nFri','31','\n\nSat']

tick_locations = np.arange(31)

new_labels = [ ''.join(x) for x in zip(tick_labels[0::2], tick_labels[1::2]) ]
plt.figure(figsize=(15, 8))

plt.xticks(tick_locations, new_labels)

plt.show()

切勿使用ax。在未设置刻度位置的情况下设置刻度标签。这可以通过
ax.set\xticks
完成

ax.set_xticks(...)
ax.set_xticklabels(...)
当然,您也可以对pyplot执行同样的操作

ax = plt.gca()
ax.set_xticks(...)
ax.set_xticklabels(...)

谢谢你指导我。但是,请看上面的编辑,因为我还没有到那里。@Harv先生,我看到问题了。我已经更新了我的答案
ax = plt.gca()
ax.set_xticks(...)
ax.set_xticklabels(...)