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()