一、点的绘制
1、绘制点需要提前设置点
xo = np.pi * 3/4
yo_cos = np.cos(xo)/2
yo_sin = np.sin(xo)
2、连点成线
- 绘制:mp.scatter(水平坐标数组, 垂直坐标数组, marker=点的形状, s=点的大小, edgecolor=勾边色, facecolor=填充色, zorder=Z序)
- Z序:画图的顺序,默认plot画点的0,线是1,数字越大,画得越晚,笔画就在处在越顶层
mp.scatter([xo, xo], [yo_cos, yo_sin], s=70, edgecolor='limegreen', facecolor='white', zorder=3 )
mp.plot([xo, xo], [yo_cos, yo_sin], linestyle='--', linewidth=1, color='lightgreen')
3、添加注释
mp.annotate(
备注文本,
xy=目标位置,
xycoords=目标相对坐标系,
xytext=文本位置,
textcoords=文本相对坐标系,
fontsize=字体大小,
arrowprops=箭头属性
)
mp.annotate(
r'$\frac{1}{2}cos(\frac{3\pi}{4})=-\frac{\sqrt{2}}{4}$',
xy=(xo, yo_cos), xycoords='data',
xytext=(-90, -40), textcoords='offset points',
fontsize=14,
arrowprops=dict(arrowstyle='->', connectionstyle='arc3, rad=.2')
)
二、figure图形对象
1、创建图形对象
mp.figure(图形对象名, figsize=窗口大小, dpi=分辨率, facecolor=窗口颜色)
2、练习代码
import numpy as np
import matplotlib.pylab as mp
x = np.linspace(-np.pi, np.pi, 1000)
cos_y = np.cos(x)/2
sin_y = np.sin(x)
mp.figure("FO 01", figsize=(6, 4), dpi=120, facecolor='lightgray')
mp.title("FO 01", fontsize=20)
mp.xlabel('x', fontsize=12)
mp.ylabel('y', fontsize=12)
mp.tick_params(labelsize=10)
mp.grid(linestyle=":")
mp.plot(x, cos_y, label=r"$y=\frac{1}{2}cos(x)$")
mp.legend()
mp.figure("FO 02")
mp.title("FO 02", fontsize=20)
mp.plot(x, sin_y, label=r"$y=sin(x)$")
mp.xlabel('x', fontsize=12)
mp.ylabel('y', fontsize=12)
mp.tick_params(labelsize=10)
mp.grid(linestyle=":")
mp.legend()
mp.show()
三、多元布局
1、缺省布局
- 创建子图:mp.subplot(行数, 列数, 图号)
- 练习代码:
import matplotlib.pylab as mp
mp.figure(facecolor="lightgray")
for i in range(2):
for j in range(3):
k = i*3 + j + 1
mp.subplot(2, 3, k)
mp.xticks(())
mp.yticks(())
mp.text(0.5,0.5, str(k), ha='center', size=36, alpha=0.5)
mp.tight_layout()
mp.show()
2、栅格布局
- 引入模块:import matplotlib.gridspec as mg
- 创建栅格:gs = mg.GridSpec(行数, 列数)
- 放置子图:mp.subplot(gs[行, 列])
- 练习代码:
import matplotlib.pylab as mp
import matplotlib.gridspec as mg
mp.figure(facecolor="lightgray")
gs = mg.GridSpec(3, 3)
mp.subplot(gs[0, :2])
mp.xticks(())
mp.yticks(())
mp.text(0.5, 0.5, '1', ha='center', va='center', size=36, alpha=0.5)
mp.subplot(gs[1:, 0])
mp.xticks(())
mp.yticks(())
mp.text(0.5, 0.5, '2', ha='center', va='center', size=36, alpha=0.5)
mp.subplot(gs[2, 1:])
mp.xticks(())
mp.yticks(())
mp.text(0.5, 0.5, '3', ha='center', va='center', size=36, alpha=0.5)
mp.subplot(gs[:2, 2])
mp.xticks(())
mp.yticks(())
mp.text(0.5, 0.5, '4', ha='center', va='center', size=36, alpha=0.5)
mp.subplot(gs[1, 1])
mp.xticks(())
mp.yticks(())
mp.text(0.5, 0.5, '5', ha='center', va='center', size=36, alpha=0.5)
mp.show()
3、自由布局
- mp.axes([左下角水平左边, 左下角垂直坐标, 宽度, 高度]) # 此处的尺寸参数都是按比例来的
- 练习代码:
import matplotlib.pylab as mp
mp.figure(facecolor="lightgray")
mp.axes([0.03, 0.038, 0.94, 0.924])
mp.xticks(())
mp.yticks(())
mp.text(0.5, 0.5, '1', ha='center', va='center', size=36, alpha=0.5)
mp.axes([0.60, 0.07, 0.35, 0.5])
mp.xticks(())
mp.yticks(())
mp.text(0.5, 0.5, '2', ha='center', va='center', size=36, alpha=0.5)
mp.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)