我有一個錯誤條圖,其中x軸是日期時間對象的列表。標準繪圖方法將把第一個和最後一個點放在圖的邊界框上。我想用半刻度來抵消,以便清楚地看到第一個和最後一個點。日期時間軸間距
ax.axis(xmin=-0.5,xmax=len(dates)-0.5)
不起作用的原因很明顯。能夠在不對任何日期進行硬編碼的情況下執行此操作將會很好。
下將產生有十個點的情節,你真的可以只看到8
import datetime
import matplotlib.pyplot as plt
dates = [datetime.date(2002, 3, 11) - datetime.timedelta(days=x) for x in range(0, 10)]
yvalues = [2, 4, 1,7,9,2, 4, 1,7,9]
errorvalues = [0.4, 0.1, 0.3,0.4, 0.1,.4, 0.1, 0.3,0.4, 0.1]
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.errorbar(dates,yvalues,yerr=errorvalues,fmt='.')
fig.autofmt_xdate()
plt.show()
這將會是更容易幫你出一些示例數據。例如,根據您的日期分散程度有多大,某些方法可能會落入或者失寵。 –
我希望有一個通用的方法。實際的日期並不重要。讓我們假設我們希望日期之間的間距相等,而不管列表中的值如何。目標是讓蜱的開始時間延遲半個空格,並儘早結束半個空格。我在下面的答案中給了我目前的黑客攻擊。 – Keith
沒關係。提供一個簡單的,可複製/可粘貼的腳本作爲啓動的切入點是一種很好的做法。幫助你越容易,你會得到更多的幫助。現在,我必須激活conda環境,啓動ipython筆記本服務器,並創建我自己的假數據,並希望它代表您所面臨的問題。 –