前一篇文章,介绍了如何用matplotlib绘制一些简单的图。通常在图上需要添加很多的标注信息,如添加图例。
1 import matplotlib.pyplot as plt 2 import numpy as np 3 4 5 t=np.arange(0.,5.,0.2) 6 #这里我们设置了线的颜色以及线形,实际上也可以设置线宽等其他参数 7 plt.plot(t,t*10,'r--',t**2,'bs',t**3,'g^') 8 #legend是用来设置图例的,当未知参数loc未定时,它会自己寻找图上信息不多的区域来放置图例 9 plt.legend(labels=["$line1$","$line2$","$line3$"]) 10 plt.show()
前面我们都是用plot函数绘制线图。下面来绘制柱状图。
1 import matplotlib.pyplot as plt 2 3 name_list = ['Monday','Tuesday','Wednesday','Thursday','Friday'] 4 num_list = [1.5,0.8,7.8,5,6.3] 5 #柱状图的绘制函数为bar(),关键字分别指定个数,柱高度,指定颜色,以及将横坐标替换成名字 6 plt.bar(range(len(num_list)), num_list,color='rgb',tick_label=name_list) 7 plt.show()
当然我们绘制的图不会就这样简陋:
1 import matplotlib.pyplot as plt 2 3 class_list = ['class-one','class-two','class-three','class-four'] 4 num_list = [3,5,8,6] 5 num_list1 = [1,2,3,1] 6 x =list(range(len(num_list))) 7 #这里是设置柱状图的宽度 8 9 total_width, n = 0.8, 2 10 width = total_width / n 11 12 plt.bar(x, num_list, width=width,fc = 'b') 13 #柱中心偏移距离 14 for i in range(len(x)): 15 x[i] = x[i] + width 16 17 plt.bar(x, num_list1, width=width,tick_label = class_list,fc = 'r') 18 plt.legend(labels=["boy","girl"]) 19 plt.show()
下面是饼状图的绘制,这个例子来源于官方使用指南:
1 import matplotlib.pyplot as plt 2 3 # 饼状图的切片标签 4 labels = 'Frogs', 'Hogs', 'Dogs', 'Logs' 5 sizes = [15, 30, 45, 10] 6 7 #将30%这一部分饼状图分离,间隙值0.1 8 explode = (0, 0.1, 0, 0) 9 10 #指定画布1,实例化plt.subplots() 11 fig1, ax1 = plt.subplots() 12 13 #autopct是指定百分比显示规格,保留一位小数 14 #最后两个关键字值是添加阴影,以及确定起始角度 15 ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', 16 shadow=True, startangle=90) 17 18 #等宽比确保饼状图绘制成一个圆 19 ax1.axis('equal') 20 21 plt.show()
效果图如下:
matplotlib的绘图功能是能够满足我们可视化需求的。其他的一些使用方法,在今后学习中查阅就行。