0
我在GUI中有一個圖形,該圖形通過點擊按鈕打開。它從一個不斷更新的csv文件打開,因此在開始時進行計數,我想限制x軸的條目數。MatPlotLib帶有日期的X軸
但是,這條陰謀對四條線有效,我一直無法改進x軸,我想要做的是;
- 旋轉字體
- 刪除尾隨零的日期
- 可能更改日期格式,以DMY H:M
下面的腳本是我到目前爲止有:
def open_graph():
import numpy as np
import matplotlib.pyplot as plt
import datetime as dt
from dateutil import parser
from csv import reader
with open('Voltage_Readings.csv','r') as f:
data = list(reader(f))
file=open('Voltage_Readings.csv')
numlines=(len(file.readlines())-1)
start=numlines-100
end=numlines
fig=plt.figure()
ax=plt.subplot(111)
DTG = [parser.parse(i[1]) for i in data[start:end]]
Battery_Level = [i[2] for i in data[start:end]]
Gene_Supply = [i[3] for i in data[start:end]]
Solar_Supply = [i[4] for i in data[start:end]]
Wind_Supply = [i[5] for i in data[start:end]]
plt.plot(DTG, Battery_Level,'-r', label='Battery')
plt.plot(DTG, Gene_Supply,'-y', label='Gene')
plt.plot(DTG, Solar_Supply,'-b', label='Solar')
plt.plot(DTG, Wind_Supply,'-g', label='Wind')
box = ax.get_position()
ax.set_position([box.x0, box.y0, box.width *0.85, box.height])
ax.legend(bbox_to_anchor=(1, 1),loc=2)
plt.title('VOLTAGE MEASUREMENTS FROM POWER SOURCES')
plt.xlabel('Time')
plt.ylabel('Voltage')
plt.show()
我希望任何幫助都能夠實現這一點,因爲我仍然在學習。
@bobbydurrettdba,感謝您的意見,但我似乎無法得到它的工作。我從csv讀取的腳本看起來並不喜歡那條線。如果你不介意可以看看我的csript,讓我知道它需要去哪裏,或者如果我需要添加其他東西。我也不太確定如何將xnames配置爲我想要的格式的日期。 – user7524882
對不起,我不是很清楚。它看起來像DTG是代碼中的日期和時間列表。在我的代碼中,我的日期和時間列表位於名爲xnames的變量中。我想如果你想改變你的日期,只需從DTG中創建一個新的列表,將每個元素修改爲你想要的長度和你想要的格式。 xticks以rotateation = angle作爲參數,這就是我沿着我的x軸旋轉日期的方式。 xticks的第一個參數是標籤的x值列表,第二個參數是標籤列表。 –
我編輯了我的答案。 Matplotlib有一些很好的內置日期格式,在此之前我不知道。 –