这里利用Nathan Yau所著的一书中的数据,学习画图。
数据地址:http://datasets.flowingdata.com/us-postage.csv
准备工作:先导入matplotlib和pandas,用pandas读取csv文件,然后创建一个图像和一个坐标轴
import pandas as pdfrom matplotlib import pyplot as pltpostage=pd.read_csv(r"http://datasets.flowingdata.com/us-postage.csv")fig,ax=plt.subplots()
先来看看这个数据文件:
Year Price0 1991 0.291 1995 0.322 1999 0.333 2001 0.344 2002 0.375 2006 0.396 2007 0.417 2008 0.428 2009 0.449 2010 0.44
这个数据很简单,展示的是从1991年-2010年美国邮费的变化。
让我们来画一个阶梯图,展现邮费的变化过程。
阶梯图: ax.step(x,y)
代码如下:
import pandas as pdfrom matplotlib import pyplot as pltpostage=pd.read_csv(r"http://datasets.flowingdata.com/us-postage.csv")fig,ax=plt.subplots(figsize=(10,4))ax.step(postage["Year"],postage["Price"],where='post')ax.set_title("US Postage Fee") #设置标题ax.set_xticks([i for i in postage["Year"]]) #设置x轴刻度ax.set_yticks([]) #去除y轴刻度#去除边框ax.spines["top"].set_visible(False)ax.spines["bottom"].set_visible(False)ax.spines["left"].set_visible(False)ax.spines["right"].set_visible(False)#添加文字注释for i,j in zip(postage["Year"],postage["Price"]): ax.text(x=i,y=j+0.003,s=j)fig.tight_layout()plt.show()
图像如下: