在matplotlib中,plot命令主要用于绘制折线图, 基本用法如下
>>> import matplotlib.pyplot as plt
>>> plt.plot([1, 2, 3, 4], [1, 2, 3, 4])
输出结果如下
第一个参数的值作为x轴坐标,第二个参数的值作为y轴坐标,从而绘制折线图。当只提供一个数值参数时,自动将其作为y轴坐标,x轴坐标为对应的数值下标,示例如下
>>> plt.plot([1, 2, 3, 4])输出结果如下
当我们想要对dict或者pandas DataFrame中的数据进行绘图时,可以采用如下语法
>>> import pandas as pd>>> data_dict = pd.DataFrame({'xlabel':[1, 2, 3, 4], 'ylabel':[1, 2, 3, 4]})
>>> plt.plot('xlabel', 'ylabel', data=data_dict)
对于可以用data['xlabel']方式访问的数据,不在需要显示的指定具体的值,而是通过结合data参数,只需要提供名称即可。
尽管plot命令主要用于绘制折线图,但是通过控制其参数,也可以用于绘制散点图以及散点和折线的组合图,示例如下
1. 散点图
>>> import numpy as np>>> x = np.array([1, 2, 3, 4])
>>> y = np.array([1, 2, 3, 4])
>>> plt.plot(x,y,'o')
输出结果如下
2. 散点图和直线图的叠加
>>> plt.plot(x,y,marker='o', linestyle='--', linewidth=2)输出结果如下
通过调整参数,可以实现不同的可视化效果。plot命令的参数设置围绕点和线两个基本元素进行。对于点而言,拥有以下基本属性
1. 填充色, markerfillcolor, 简写为mec
2. 边框颜色,markeredgecolor, 简写为mfc
3. 边框的线条宽度,markeredgewidth, 简写为mfc
4.大 小, markersize, 简写为ms
5. 形状, marker
对于线而言,用于以下基本属性
1. 颜色, color, 简写为c
2. 宽度,linewidth, 简写为lw
3. 风格,实线还是虚线,linestyle. 简写为ls
对于颜色,在matplotlib中,其实是有多种设定的方法,这里只介绍最常用的一种,颜色的缩写,示意如下
对于点的形状,提供了多种取值,示意如下
对于线条的风格,取值如下
对于大部分参数,在标准名称之外,还提供了对应的简写,进一步较少代码量。plot命令的参数设置有多种写法
1. 单独设置
顾名思义,需要显示的指定每个参数的值,示例如下
>>> plt.plot(x,y,marker='o', linestyle='--', linewidth=2, color ='black', markersize=6)输出结果如下
当然,简写也是可行的
>>> plt.plot(x,y,marker='o', ls='--', lw=2, c ='black', ms=6)2. 混合设置
plot命令支持参数的混合设置,可以将marker, linestyle, color 3个参数混合到一起,示例如下
>>> plt.plot(x,y,'ko--' ,lw=2, ms=6)注意,参数的混合是一种语法糖,在前面是没有具体的参数名称的,k是颜色black的简写,o对应marker参数,--对应linestyle参数, 在解析不会混淆的情况下,顺序没固定要求,不过官方更推荐以下顺序
[marker][linestyle][color]该代码的输出结果和之前的代码输出结果完全相同,灵活运用各种语法糖,可以极大的减少代码量。
除了绘制单个线条,plot命令也支持多种线条的叠加,常见的有以下两种写法,第一种示例如下
>>> plt.plot(x, y, label = 'sampleA')>>>plt.plot(x, y + 1, label = 'sampleB')
>>>plt.plot(x, y + 2, label = 'sampleC')
>>>plt.legend()
输出结果如下
第二种写法如下
>>> plt.plot(x, y, x, y + 1, x, y + 2)>>> plt.legend(labels=['sampleA', 'sampleB', 'sampleC'])
输出结果如下
当在同一幅图片上绘制多条折线时,matplotlib有一个内置的调色盘,颜色梯度如下
'#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'会自动根据调色盘,为每个折线设置不同的颜色,所以通常情况下,我们不需要手工设定每条线的颜色,这个默认的颜色梯度通过axes.prop_cycle参数设定。和R的base plot语法相比,matplotlib中的plot命令在绘制多条直线时更加的简洁直观。
·end·
一个只分享干货的
生信公众号