plot()绘图函数
plt.plot(x, y, format_string, **kwargs)
x x轴 列表或数组
y y轴 列表或数组
fromat_string 格式字符串
颜色字符
b,蓝色
g,绿色
r,红色
c,青绿色cyan
m,洋红色magenta
y,黄色
k,黑色
w,白色
#008000 RGB颜色
0.8 灰度值
风格字符
- 实线
-- 破折线
-. 点划线
: 虚线
'' 无线条
标记字符
. 点标记
, 像素标记
o 实心圈标记
v 倒三角标记
^ 上三角标记
> 右三角标记
< 左三角标记
1 下花三角标记
2 上花三角标记
3 左花三角标记
4 右花三角标记
s 实心方形标记
p 实心五角标记
* 星型标记
h 竖六边形标记
H 横六边形标记
+ 十字标记
x x标记
D 菱形标记
d 瘦菱形标记
| 垂直线标记
**kwargs
color 控制颜色 color="green"
linestyle 线条风格 line
marker 标记风格 marker="o"
markerfacecolor 标记颜色 markerfacecolor="blue"
markersize 标记尺寸 markersize=20
...
中文显示
matpoltlib默认不支持中文
方式一:matplotlib.rcParams全局设置(字典)
font.family 显示字体
SimHei 中文黑体
Kaiti 中文楷体
LiSu 中文隶书
FangSong 中文仿宋
YouYuan 中文幼圆
STSong 华文宋体
font.style 字体风格 正常normal 斜体 italic
font.size 字体大小 整数字号或large x-small
方式二 单独设置参数 fontproperties
pyplot文本显示函数
plt.xlabel() x轴文本标签
plt.ylabel() y轴文本标签
plt.title() 图形整体标签
plt.text() 任意位置增加文本
plt.annotate() 带箭头的注解
绘图区域
1、plt.subplot(nrows, ncols, plot_number)
2、plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1)
设定网格,选中网格,确定选中行列区域数量,编号从0开始
例如:plt.subplot2grid((3,3), (1,0), colspan=2)
3、GridSpes类
from matplotlib.gridspec import GridSpec
gs = GridSpec(3, 3)
ax1 = plt.subplot(gs[0, :])
代码实例
引入模块
# -*- coding: utf-8 -*-
# @File : matplotlib_demo.py
# @Date : 2018-05-06
from matplotlib import rcParams
import matplotlib.pyplot as plt
import numpy as np
绘制图形并保存
def foo1():
# 设置y轴数值
plt.plot([3, 1, 4, 5, 2])
# 设置y轴标签
plt.ylabel("grade")
# 保存,默认为png, dpi图片质量
plt.savefig("img1", dpi=600)
# 显示
plt.show()
def foo2():
plt.plot([1, 2, 3, 4, 5], [3, 1, 4, 5, 2])
plt.ylabel("grade")
# 设置x轴,y轴起止点坐标
plt.axis([1, 5, 0, 6])
plt.savefig("img2", dpi=600)
plt.show()
def foo3():
a = np.arange(10)
plt.plot(a, a*1.5, a, a*2.5, a, a*3.5, a, a*4.5)
plt.savefig("img3", dpi=600)
plt.show()
def foo4():
a = np.arange(10)
plt.plot(a, a*1.5, 'go-',
a, a*2.5, 'rx',
a, a*3.5, '*',
a, a*4.5, 'b-.'
)
plt.savefig("img4", dpi=600)
plt.show()
def foo5():
a = np.arange(10)
plt.plot(a, a*1.5, color="green", line, marker='o')
plt.savefig("img5", dpi=600)
plt.show()
def foo6():
# 设置中文样式
rcParams["font.family"]="SimHei" #黑体
rcParams["font.size"]= 20
# 绘制曲线
a = np.arange(0.0, 5.0, 0.02)
plt.plot(a, np.cos(2*np.pi*a), "r--")
plt.xlabel("x轴坐标")
plt.ylabel("y轴坐标")
plt.savefig("img6", dpi=600)
plt.show()
def foo7():
# 绘制曲线
a = np.arange(0.0, 5.0, 0.02)
plt.xlabel("x轴坐标", fontproperties="SimHei", fontsize=20)
plt.ylabel("y轴坐标", fontproperties="SimHei", fontsize=20)
plt.plot(a, np.cos(2*np.pi*a), "r--")
plt.savefig("img7", dpi=600)
plt.show()
def foo8():
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, color="red")
plt.title("正弦波实例$y=cos(2\pi x)$", fontproperties="SimHei", fontsize=25)
plt.text(5, 1, "$\mu=100$", fontsize=15)
# 注解
plt.annotate("$\mu=100$", xy=(2, 1), xytext=(3, 1.3),
arrowprops=dict(facecolor="black", shrink=0.1, width=2))
plt.axis([-1, 6, -2, 2])
plt.grid(True) # 显示网格
plt.savefig("img8", dpi=600)
plt.show()
def foo9():
def f(t):
return np.exp(-t) * np.cos(2*np.pi*t)
a = np.arange(0.0, 5.0, 0.02)
# 设置绘图区域
plt.subplot(2, 1, 1)
plt.plot(a, f(a))
# 设置绘图区域
plt.subplot(212)
plt.plot(a, np.cos(2*np.pi*a), "r--")
plt.savefig("img9", dpi=600)
plt.show()
def foo10():
# 左上区域
plt.subplot2grid((3,3), (0,0), colspan=2)
plt.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
# 右边区域
plt.subplot2grid((3,3), (0,2), rowspan=3)
plt.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
# 左中区域
plt.subplot2grid((3,3), (1,0), colspan=2)
plt.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
# 左下区域
plt.subplot2grid((3,3), (2,0), colspan=2)
plt.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
plt.savefig("img10", dpi=600)
plt.show()
from matplotlib.gridspec import GridSpec
def foo11():
# 分割绘图区域
gs = GridSpec(3, 3)
# 在绘图区域绘图
ax1 = plt.subplot(gs[0, :])
ax1.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
ax2 = plt.subplot(gs[1, 0:-1])
ax2.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
ax3 = plt.subplot(gs[2, 0:-1])
ax3.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
ax4 = plt.subplot(gs[1:, 2])
ax4.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
plt.savefig("img11", dpi=600)
plt.show()