Matplotlib - 以天和小时为单位绘制日期(x 轴)与值(y 轴)

我有一个xlsx包含两列的文件。第一个是时间戳 (DT-Index),如下所示 (18.01.2012 06:00:00),第二个包含正常值。

我有 1 年的时间戳,每天 24 小时,总共 8736 个值。现在我想绘制这些数据,如下图所示。

https://img1.sycdn.imooc.com/659679700001f27e08310482.jpg

我面临的问题是,有很多天,当我尝试像这样绘制它们时,我会出现 20 次甚至更多的星期一。如何实现如图所示的解决方案?



拉风的咖菲猫
浏览 93回答 1
1回答

噜噜哒

my_xticks1 = ['Montag','Dienstag','Mittwoch','Donnerstag','Freitag' , 'Samstag' , 'Sonntag' , 'aa']my_major_xticks = ['00' , '00','00','00','00','00' , '00' , '00']my_minor_xticks = [0 , 5 , 11 , 17 , 23 , 29 , 35 , 41 , 47 , 53 , 59 , 65 , 71 , 77 , 83 , 89 , 95 , 101 , 107 , 113 , 119 , 125 , 131 , 137 , 143 , 149 , 155 , 161 , 167]my_minor_label = ['06' , '12' , '18' , '06' , '12' , '18' , '06' , '12' , '18' ,'06' , '12' , '18', '06' , '12' , '18' , '06' , '12' , '18' , '06' , '12' , '18']fig, ax = plt.subplots()ax.plot(list(dataB.keys()), list(dataB.values()), label="Dec-Feb" , color='#3074bb')ax.plot(list(dataR.keys()), list(dataR.values()), label="Mar-Apr & Oct-Nov" , color='#bb3530')ax.plot(list(dataP.keys()), list(dataP.values()), label="Dec-Feb" , color='#a630bb')ax.plot(list(dataG.keys()), list(dataG.values()), label="Jun-Aug" , color='#30bb40')ax.set_ylim(ymin=0)ax.set_xlim(xmin=0)ax.set_ylabel('Wärmelast / kW')ax.set_title("Test")#set the major xticks by its location and the location is presented by the length of the listplt.xticks([0,23,47,71,95,119,143,167] , my_major_xticks)# both for x and y axisax.tick_params('both', length=7, width=1, which='major')plt.grid()# control the minor locator and added a fixedlocator function to itax.xaxis.set_minor_locator(FixedLocator(my_minor_xticks))# add the label to the minor locatorax.xaxis.set_minor_formatter(FixedFormatter(my_minor_label))ax.legend()num = 11for i, xpos in enumerate(ax.get_xticks()):    if(i == 7):        break;    ax.text(num,-40, my_xticks1[i],             size = 10, ha = 'center')    num = num + 24我刚刚使用 xticks 、 set_minor_locator 和 ax.text 解决了它 我刚刚发布了上面的代码
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python