我有一个包含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 ......
答案 0 :(得分:1)
问题中的数据表示似乎不太合理。我希望在相同的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()