前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matplotlib基础绘图命令之plot

matplotlib基础绘图命令之plot

作者头像
生信修炼手册
发布2020-07-21 10:35:23
1.1K0
发布2020-07-21 10:35:23
举报
文章被收录于专栏:生信修炼手册生信修炼手册

在matplotlib中,plot命令主要用于绘制折线图, 基本用法如下

代码语言:javascript
复制
>>> import matplotlib.pyplot as plt
>>> plt.plot([1, 2, 3, 4], [1, 2, 3, 4])

输出结果如下

第一个参数的值作为x轴坐标,第二个参数的值作为y轴坐标,从而绘制折线图。当只提供一个数值参数时,自动将其作为y轴坐标,x轴坐标为对应的数值下标,示例如下

代码语言:javascript
复制
>>> plt.plot([1, 2, 3, 4])

输出结果如下

当我们想要对dict或者pandas DataFrame中的数据进行绘图时,可以采用如下语法

代码语言:javascript
复制
>>> 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. 散点图

代码语言:javascript
复制
>>> import numpy as np
>>> x = np.array([1, 2, 3, 4])
>>> y = np.array([1, 2, 3, 4])
>>> plt.plot(x,y,'o')

输出结果如下

2. 散点图和直线图的叠加

代码语言:javascript
复制
>>> 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. 单独设置

顾名思义,需要显示的指定每个参数的值,示例如下

代码语言:javascript
复制
>>> plt.plot(x,y,marker='o', linestyle='--', linewidth=2, color ='black', markersize=6)

输出结果如下

当然,简写也是可行的

代码语言:javascript
复制
>>> plt.plot(x,y,marker='o', ls='--', lw=2, c ='black', ms=6)

2. 混合设置

plot命令支持参数的混合设置,可以将marker, linestyle, color 3个参数混合到一起,示例如下

代码语言:javascript
复制
>>> plt.plot(x,y,'ko--' ,lw=2, ms=6)

注意,参数的混合是一种语法糖,在前面是没有具体的参数名称的,k是颜色black的简写,o对应marker参数,--对应linestyle参数, 在解析不会混淆的情况下,顺序没固定要求,不过官方更推荐以下顺序

代码语言:javascript
复制
[marker][linestyle][color]

该代码的输出结果和之前的代码输出结果完全相同,灵活运用各种语法糖,可以极大的减少代码量。

除了绘制单个线条,plot命令也支持多种线条的叠加,常见的有以下两种写法,第一种示例如下

代码语言:javascript
复制
>>> plt.plot(x, y, label = 'sampleA')
>>>plt.plot(x, y + 1, label = 'sampleB')
>>>plt.plot(x, y + 2, label = 'sampleC')
>>>plt.legend()

输出结果如下

第二种写法如下

代码语言:javascript
复制
>>> plt.plot(x, y, x, y + 1, x, y + 2)
>>> plt.legend(labels=['sampleA', 'sampleB', 'sampleC'])

输出结果如下

当在同一幅图片上绘制多条折线时,matplotlib有一个内置的调色盘,颜色梯度如下

代码语言:javascript
复制
'#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'

会自动根据调色盘,为每个折线设置不同的颜色,所以通常情况下,我们不需要手工设定每条线的颜色,这个默认的颜色梯度通过axes.prop_cycle参数设定。和R的base plot语法相比,matplotlib中的plot命令在绘制多条直线时更加的简洁直观。

·end·

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档