这里利用Nathan Yau所著的《鲜活的数据:数据可视化指南》一书中的数据,学习画图。
数据地址:http://datasets.flowingdata.com/us-postage.csv
准备工作:先导入matplotlib和pandas,用pandas读取csv文件,然后创建一个图像和一个坐标轴
import pandas as pd from matplotlib import pyplot as plt postage=pd.read_csv(r"http://datasets.flowingdata.com/us-postage.csv") fig,ax=plt.subplots()
先来看看这个数据文件:
Year Price
0 1991 0.29
1 1995 0.32
2 1999 0.33
3 2001 0.34
4 2002 0.37
5 2006 0.39
6 2007 0.41
7 2008 0.42
8 2009 0.44
9 2010 0.44
这个数据很简单,展示的是从1991年-2010年美国邮费的变化。
让我们来画一个阶梯图,展现邮费的变化过程。
阶梯图: ax.step(x,y)
代码如下:
import pandas as pd from matplotlib import pyplot as plt postage=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()
图像如下: