matplotlib基础绘图命令之plot

时间:2022-07-22
本文章向大家介绍matplotlib基础绘图命令之plot,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

在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·

—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。