我有一组日期对应于几百本书的出版年份。绝大多数是1800到现在。但是少数(<10)是在1800之前但是广泛分散。我想要的是让我的箱子像这样:
[0,1600,1700,1800,1810,1820,... 2000,2010,2020]
但是对于显示的二进制文件,所有像素的宽度都相同。
到目前为止,这是我的代码:
import sys
import csv
import numpy as np
import matplotlib.pyplot as plt
import time
import math as m
def importData(fileName):
dataArray=[]
file=open(fileName,'rb')
data = csv.reader(file,delimiter="\t")
for row in data:
dataArray.append(row[4])
file.close()
dataArray=np.array(dataArray).astype(int)
return dataArray
dates = importData("tabulatedDates.dat")
binDivs=np.array([1600,1700]+range(1800,2021,10))
plt.hist(dates,bins=(binDivs),label=["Books"])
plt.xticks(binDivs,rotation=75)
plt.xlim([1600,2020])
plt.minorticks_on()
plt.tick_params(axis='x',which='minor',bottom='off')
plt.grid(True,axis='y',which='both')
plt.xlabel("Year")
plt.ylabel("Number of books published during this period")
plt.title("Published year of recommended books")
plt.show()
这是输出,我想让那些烦人的宽箱与其他箱子的宽度相同,但仍然代表100年
现在我可以使用宽度变量设置这个代码,但是我有一堆丑陋的白色空间,这也是有问题的。
plt.hist(dates,bins=(binDivs),width=10,label=["Books"])