黑马程序员技术交流社区
标题:
【广州Python】Matplotlib绘制折线图
[打印本页]
作者:
yangrui
时间:
2019-6-20 21:41
标题:
【广州Python】Matplotlib绘制折线图
折线图(plot)
基本使用
import matplotlib.pyplot as plt # 导包
plt.figure() # 1)创建画布(容器层)
plt.plot([1, 2, 3, 4, 5, 6 ,7], [17, 17, 18, 15, 11, 11, 13]) # 2)绘制折线图(图像层)
plt.show() # 3)显示图像
设置画布属性与图片保存
plt.figure(figsize=(), dpi=) # 返回fig对象
figsize:指定图的长宽
dpi:图像的清晰度
plt.savefig(path)
path:图片存储的路径
注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片。
常用设置
自定义x、y刻度
plt.xticks(x, **kwargs)
x:要显示的刻度值
plt.yticks(y, **kwargs)
y:要显示的刻度值
添加网格显示
plt.grid(True, linestyle='--', alpha=0.5)
linestyle:网格线的形状
alpha:透明度
添加描述信息
plt.xlabel("时间") # x轴
plt.ylabel("温度") # y轴
plt.title("中午11点0分到12点之间的温度变化图示") # 标题
显示图例
plt.plot(x, y_beijing, color='r', linestyle='--', label="北京") # 绘制图像
x:x轴坐标
y_beijing: y轴坐标
color:折线图颜色
linestyle: 线性
label:图例
常见的color和linestyle
颜色字符 风格字符
r 红色 - 实线
g 绿色 - - 虚线
b 蓝色 -. 点划线
w 白色 : 点虚线
c 青色 ' ' 留空、空格
m 洋红
y 黄色
k 黑色
注意:如果只在plt.plot()中设置label还不能最终显示出图例,还需要通过plt.legend()将图例显示出来
plt.legend(loc="best")
loc:图例显示的位置
多个坐标系显示-plt.subplots(面向对象的画图方法)
plt.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)
参数说明
nrows、ncols: 整型,可选参数,默认为1。表示子图网格(grid)的行数与列数。
sharex、sharey:布尔值或者{'none','all','row','col'},默认:False, 控制x(sharex)或y(sharey)轴之间的属性共享。
True或者'all':x或y轴属性将在所有子图(subplots)中共享。
False或'none':每个子图的x或y轴都是独立的部分。
'row':每个子图在一个x或y轴共享行(row)。
'col':每个子图在一个x或y轴共享列(column)。
注意: 当子图在x轴有一个共享列时('col'),只有底部子图的x tick标记是可视的。同理,当子图在y轴有一个共享行时('row'),只有第一列子图的y tick标记是可视的。
squeeze:布尔类型,可选参数,默认:True。
如果是True,额外的维度从返回的Axes(轴)对象中挤出。
如果只有一个子图被构建(nrows=ncols=1),结果是单个Axes对象作为标量被返回。
对于N*1或1*N个子图,返回一个1维数组。
对于N*M,N>1和M>1返回一个2维数组。
subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()来创建每个子图。
gridspec_kw:字典类型,可选参数。把字典的关键字传递给GridSpec构造函数创建子图放在网格里(grid)。
**fig_kw:把所有详细的关键字参数传给figure()函数
返回结果:
fig:matplotlib.figure.Figure对象。
ax:Axes(轴)对象或Axes(轴)对象数组。
常用方法:
set_xticks、 set_yticks: 设置x、y轴刻度
set_xlabel、set_ylabel: 设置x、y轴标题
set_title: 设置9图标题
注意:plt.函数名()相当于面向过程的画图方法,axes.set_方法名()相当于面向对象的画图方法。
折线图应用场景
呈现公司产品(不同区域)每天活跃用户数。
呈现app每天下载数量。
呈现产品新功能上线后,用户点击次数随时间的变化。
拓展:画各种数学函数图像,plt.plot()除了可以画折线图,也可以用于画各种数学函数图像,配合numpy模块实现。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2