1. 举个栗子
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2, 100)
plt.plot(x, x, label='linear')
plt.plot(x, x**2, label='quadratic')
plt.plot(x, x**3, label='cubic')
# 设置x, y轴标签
plt.xlabel('x label')
plt.ylabel('y label')
# 重新设置坐标范围
plt.axis([-2, 2, -8, 8])
# 添加标题
plt.title("Simple Plot")
# 显示图例
plt.legend()
# 另存为图片文件,默认png格式
plt.savefig("test", dpi=2000)
# 在编辑器中显示图片
plt.show()
# 如果是在交互式命令行中运行,不需要plt.show(),并且交互式命令行中是一行一行执行,所以前后不能中断(中断后是从接着的第一行开始画),即需要一次性全都粘贴至命令行中执行。
2. 分区画图
plt.subplot(nrows, ncols, plot_number)
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2, 100)
plt.subplot(2, 2, 1)
plt.plot(x, x, label='linear')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot 1")
plt.legend()
plt.subplot(2, 2, 4)
plt.plot(x, x**2, label='quadratic')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot 2")
plt.legend()
plt.show()
2.1 复杂分区
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
plt.subplot2grid((3, 3), (1, 1), colspan=2)
plt.plot(x, x, 'm:^')
plt.subplot2grid((3, 3), (0, 0), rowspan=2)
plt.plot(x, x**2)
plt.show()
3. pyplot的plot()函数
plt.plot(x, y, format_string, **kwargs)
- x : X轴数据,列表或数组,可选
- y : Y轴数据,列表或数组
- format_string: 控制曲线的格式字符串,可选; 由颜色字符、风格字符和标记字符组成
- **kwargs : 第二组或更多(x,y,format_string)
- 当绘制多条曲线时,各条曲线的x不能省略
3.1 format_string
颜色字符 |
说明 |
'b' |
蓝色 |
'm' |
洋红色 magenta |
'g' |
绿色 |
'y' |
黄色 |
'r' |
红色 |
'k' |
黑色 |
'c' |
青绿色 cyan |
'w' |
白色 |
'#008000' |
RGB某颜色 |
'0.8' |
灰度值字符串 |
风格字符 |
说明 |
'‐' |
实线 |
'‐‐' |
破折线 |
'‐.' |
点划线 |
':' |
虚线 |
'' ' ' |
无线条 |
标记字符 |
说明 |
'.' |
点标记 |
',' |
像素标记(极小点) |
'o' |
实心圈标记 |
'v' |
倒三角标记 |
'^' |
上三角标记 |
'>' |
右三角标记 |
'<' |
左三角标记 |
'1' |
下花三角标记 |
'2' |
上花三角标记 |
'3' |
左花三角标记 |
'4' |
右花三角标记 |
's' |
实心方形标记 |
'p' |
实心五角标记 |
'*' |
星形标记 |
'h' |
竖六边形标记 |
'H' |
横六边形标记 |
'+' |
十字标记 |
'x' |
x标记 |
'D' |
菱形标记 |
'd' |
瘦菱形标记 |
'|' |
垂直线标记 |
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
plt.plot(x, x, 'm:^', x, x**2, 'r-|', x, x**3, 'g--*')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.show()
4. pyplot的中文显示
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei'
matplotlib.rcParams['font.size'] = '15'
x = np.arange(10)
plt.plot(x, x, 'm:^')
plt.xlabel('x 轴')
plt.ylabel('y 轴')
plt.title("中文显示")
plt.show()
4.1 rcParams的属性
属性 |
说明 |
'font.family' |
用于显示字体的名字 |
'font.style' |
字体风格,正常'normal'或 斜体'italic' |
'font.size' |
字体大小,整数字号或者'large'、'x‐small' |
font.family 中文字体 |
说明 |
'SimHei' |
中文黑体 |
'Kaiti' |
中文楷体 |
'LiSu' |
中文隶书 |
'FangSong' |
中文仿宋 |
'YouYuan' |
中文幼圆 |
'STSong' |
华文宋体 |
4.2 第二种方法
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
plt.plot(x, x, 'm:^')
plt.title("中文显示", fontproperties="SimHei", fontsize=20)
plt.show()
5. pyplot的文本显示函数
函数 |
说明 |
plt.xlabel() |
对X轴增加文本标签 |
plt.ylabel() |
对Y轴增加文本标签 |
plt.title() |
对图形整体增加文本标签 |
plt.text() |
在任意位置增加文本 |
plt.annotate() |
在图形中增加带箭头的注解 |
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
plt.plot(x, x, 'm:^')
plt.title("中文显示", fontproperties="SimHei", fontsize=20)
plt.text(4, 4, "(4,4)")
plt.annotate("(6,6)", xy=(6, 6), xytext=(7, 5), arrowprops=dict(facecolor='black', shrink=0.05, width=1))
plt.show()