Matplotlib入门

Matplotlib的使用

Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发。
matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式。

import matplotlib.pyplot as plt

pyplot的plot()函数

plt.plot(x, y, format_string, **kwargs)
  • x : X轴数据,列表或数组,可选。plt.plot()只有一个输入列表或数组时,参数被当作Y轴,X轴以索引自动生成。
  • y : Y轴数据,列表或数组
  • format_string: 控制曲线的格式字符串,可选
    由颜色字符、风格字符和标记字符组成,颜色字符、风格字符和标记字符可以组合使用。
颜色字符说明颜色字符说明
‘b’蓝色‘m’洋红色 magenta
‘g’绿色‘y’黄色
‘r’红色‘k’黑色
‘c’青绿色 cyan‘w’白色
‘#008000’RGB某颜色‘0.8’灰度值字符串
风格字符说明
‘-‘实线
‘–‘破折线
‘-.’点划线
‘:’虚线
” ‘ ‘无线条
标记字符说明标记字符说明标记字符说明
‘.’点标记‘1’下花三角标记‘h’竖六边形标记
‘,’像素标记(极小点)‘2’上花三角标记‘H’横六边形标记
‘o’实心圈标记‘3’左花三角标记‘+’十字标记
‘v’倒三角标记‘4’右花三角标记‘x’x标记
‘^’上三角标记‘s’实心方形标记‘D’菱形标记
‘>’右三角标记‘p’实心五角标记‘d’瘦菱形标记
‘<‘左三角标记‘*’星形标记‘|’垂直线标记

color : 控制颜色, color=’green’
linestyle : 线条风格, linestyle=’dashed’
marker : 标记风格, marker=’o’
markerfacecolor: 标记颜色, markerfacecolor=’blue’
markersize : 标记尺寸, markersize=20

  • **kwargs : 第二组或更多(x,y,format_string)

当绘制多条曲线时,各条曲线的x不能省略

pyplot的绘图区域

简单的绘图区域

plt.subplot(nrows, ncols, plot_number)

在全局绘图区域中创建一个分区体系,并定位到一个子绘图区域。

复杂的绘图区域

  1. plt.subplot2grid()
plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1)

理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始
实例:

plt.subplot2grid((3, 3), (1, 0), colspan=2) #ax2
  1. GridSpec类

实例:

import matplotlib.gridspec as gridspec

gs = gridspec.GridSpec(3, 3)

ax1 = plt.subplot(gs[0, :])
ax2 = plt.subplot(gs[1, :-1])
ax3 = plt.subplot(gs[1:, -1])
ax4 = plt.subplot(gs[2, 0])
ax5 = plt.subplot(gs[2, 1])

《Matplotlib入门》

pyplot的中文显示

第一种方法

pyplot并不默认支持中文显示,需要rcParams修改字体实现

import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei'

rcParams的属性:

属性说明
‘font.family’用于显示字体的名字
‘font.style’字体风格,正常’normal’或斜体’italic’
‘font.size’字体大小,整数字号或者’large’、’x‐small’

中文字体的种类:
rcParams[‘font.family’]

中文字体说明
‘SimHei’中文黑体
‘Kaiti’中文楷体
‘LiSu’中文隶书
‘FangSong’中文仿宋
‘YouYuan’中文幼圆
‘STSong’华文宋体

第二种方法

推荐第二种方法。
在有中文输出的地方,增加一个属性:fontproperties.

plt.xlabel('横轴:时间', fontproperties='SimHei', fontsize=20)

pyplot的文本显示

函数说明
plt.xlabel()对X轴增加文本标签
plt.ylabel()对Y轴增加文本标签
plt.title()对图形整体增加文本标签
plt.text()在任意位置增加文本
plt.annotate()在图形中增加带箭头的注解
import numpy as np
import matplotlib.pyplot as plt

a = np.arange(0.0, 5.0, 0.02)
plt.plot(a, np.cos(2*np.pi*a), 'r--')

plt.xlabel('横轴:时间', fontproperties='SimHei', fontsize=15, color='green')
plt.ylabel('纵轴:时间', fontproperties='SimHei', fontsize=15)
plt.title(r'正弦波实例 $y=cos(2\pi x)$', fontproperties='SimHei', fontsize=25)
plt.text(2, 1, r'$\mu=100$', fontsize=15)

plt.axis([-1, 6, -2, 2])
plt.grid(True)
plt.show()

plt.axis()函数给出了形如[xmin,xmax,ymin,ymax]的列表,指定了坐标轴的范围。
plt.grid()控制网格显示。

plt.savefig()将输出图形存储为文件,默认PNG格式,可以通过dpi修改输出质量

plt.savefig('test', dpi=600)

Reference:
中国大学MOOC北京理工大学Python数据分析与展示课程嵩天老师课件
课程主页

    原文作者:学习编程好少年
    原文地址: https://www.jianshu.com/p/828995c68054
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞