我有一个包含 2000 个值的列表,这些值的年份范围是 2006-2017。我想在绘图的 x 轴上使用这个值。如何保留不同的年份值并删除重复项。这是一个例子:
dates = ['2006', '2006', '2006', '2007', '2007', '2007', '2008', '2008', '2008']
x = np.arange(len(dates))
plt.xticks(x, dates)
y = [0.523,0.512,0.599,0.595,0.555,0.66,0.99,0.52,0.52]
plt.plot(y)
plt.axhline(0, color='black')
plt.legend(['ORG'], loc='best', prop={'size': 15})
plt.show()
在图中,如何删除重复值并仅保留每个不同年份的一个值?
编辑: “日期”列表中出现的年份是从日期中提取的。即2006-01-25、2006-01-26、2006-01-27、2006-01-28 ...
最佳答案
问题中的数据表示似乎不太合理。我希望在相同的 x 轴位置上有相同的年份,而不是分布在其中的几个位置上。因此,根据日期绘制数据将是一个有用的选择。
import matplotlib.pyplot as plt
dates = ['2006', '2006', '2006', '2007', '2007', '2007', '2008', '2008', '2008']
y = [0.523,0.512,0.599,0.595,0.555,0.66,0.99,0.52,0.52]
plt.plot(dates, y, marker="o", ls="")
plt.axhline(0, color='black')
plt.legend(['ORG'], loc='best', prop={'size': 15})
plt.show()
如果日期是真实日期,请将它们保留为日期。
import datetime
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(3)
start = datetime.datetime(2006,1,1)
dates = [start + datetime.timedelta(days=x) for x in range(0, 2000)]
y = np.cumsum(np.random.randn(2000))+70
plt.plot(dates, y)
plt.axhline(0, color='black')
plt.legend(['ORG'], loc='best', prop={'size': 15})
plt.show()
关于python-3.x - 如何在 matplotlib pyplot 中保持 x 轴的不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48270250/