Matplotlib作图(一)
作为python中的首选画图工具,matplotlib包提供了很多图表样式。本文主要集中于一个图的组成元素,包括点、线、坐标轴、图例等。
点
对于一个点,我们主要关心的是其颜色、大小、形状等属性。不同图样的输入参数不同,需要参考具体函数文档。
- c和 edgecolors c代表点表面的颜色,edgecolors代表边缘颜色,主要有红'r'、蓝'b'、绿'g'、黑'k'等。完整的颜色表可以参考https://www.cnblogs.com/darkknightzh/p/6117528.html。
- marker 代表点的形状,主要有圆'o'、三角'v^<>'(尖角的方向即为三角头的方向)、加号'+'等等。
- makersize和edgewidth 代表点的大小与边的粗细
线
线主要关注颜色、粗细与样式等
- linestyle 线的样式,包括实线、点线、虚线、虚点线等等,分别对应于`'-'`、`':'`、`'--'`、`'-.'`。
- linewidth 粗细,单位为point
- color 颜色
坐标轴
以x轴上的标注为例
- plt.xlabel( ) 对坐标轴的描述,包括字体(fontsize)等参数
- plt.xlim( ) 限制坐标的展示范围,输入两个数作为展示区间,或者用left或right参数单独指定
- plt.xtick( ) 指定坐标轴上刻度线的内容,ticks和labels(可选)分别指定位置和内容
标注
- plt.legend( ) 添加图例,用以展示各个图像的标注。
下面为一段描绘散点图的代码以及呈现的图样
1 import numpy as np 2 import matplotlib.pyplot as plt 3 4 down = [1500, 3500, 5500, 7500] 5 up = [2500, 4500, 6500, 8500] 6 sample_amount = [450, 2000, 4000, 6000, 8000] 7 marker = ['o', '+', '^', 'v'] 8 edgecolors = 'brgk' 9 c = 'wrww' 10 11 12 for i in range(4): 13 foo = np.load('data/dist_area/dist_area_{}.npz'.format(sample_amount[i])) 14 dist_data = foo['dist_data'] 15 area_data = foo['area_data'] 16 slope, intercept, r_value, p_value, std_err = linregress(dist_data, area_data) 17 print(slope, intercept, r_value, p_value, std_err) 18 plt.scatter(dist_data, area_data, c=c[i], marker=marker[i], edgecolors=edgecolors[i], 19 label='[{}, {}]'.format(down[i], up[i])) 20 21 22 plt.xticks(fontsize='xx-large') 23 plt.yticks(fontsize='xx-large') 24 plt.xlabel('average minimum distance', fontsize='xx-large') 25 plt.ylabel('average area', fontsize='xx-large') 26 plt.legend(fontsize='xx-large') 27 plt.show()