文章目录
- 0. 背景描述
- 1. Matplotlib常用技术
- 1. 显示中文
- 2. 坐标轴显示负号
- 3. 折线图形状
- 4. 显示图标题、坐标轴名称、设置坐标轴刻度
- 5. 设置坐标范围及刻度配合图例放置
- 6. 散点图的设置
- 常用标记点形状
- 常用颜色
- 局部放大
- 设置网格线
- 7. 设置图片的显示大小以及保存图片
- 8. 图片存为矢量图并且插入Word
- 999. 其他常用命令
- 999.1 配置子图
- Last[-2]. 可供学习的素材
- Last[-1]. Opencv
- Last. 其他素材链接
- L1.数据可视化
- L2.气象数据来源
0. 背景描述
这篇文章源自平时工作需要,算是一个笔记,某些部分有待完善。
1. Matplotlib常用技术
1. 显示中文
plt.rcParams['font.sans-serif'] = 'STSong' # 设置为华文宋体
或者
plt.rc('font', family='STSong') # 设置为华文宋体
2. 坐标轴显示负号
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
3. 折线图形状
绘制折线,可以有多种颜色及形状,c代表color,marker代表节点形状,ms代表marker size,label是折线名称。
plt.plot(x, y1, lw=1, c='red', marker='s', ms=4, label='Y1')
比如要控制y1为紫色线条,*状符号,就可以:
plt.plot(x, y1, lw=1, c='purple', marker='*', ms=4, label='Y1')
's' : 方块状
'o' : 实心圆
'^' : 正三角形
'v' : 反正三角形
'+' : 加号
'*' : 星号
'x' : x号
'p' : 五角星
'1' : 三脚架标记
'2' : 三脚架标记
4. 显示图标题、坐标轴名称、设置坐标轴刻度
plt.title("承载力极限状态") # 图片标题
plt.xlabel("弯矩(KN·m)") # 坐标轴名称(X轴)
plt.ylabel("塔架截面高度(m)") # 坐标轴名称(Y轴)
plt.xticks(rotation=60) # X轴刻度旋转逆时针60°
plt.yticks(rotation=60) # Y轴刻度旋转逆时针60°
5. 设置坐标范围及刻度配合图例放置
plt.xticks(np.arange(-10, 2, 2)) # x轴的刻度,或者plt.xticks(range(-10, 2, 2))
plt.xlim(-12, 1) # x轴坐标范围
plt.legend(loc='lower left') # 图例放置的位置为左下角
6. 散点图的设置
常用标记点形状
‘.’:点(point marker)
‘,’:像素点(pixel marker)
‘o’:圆形(circle marker)
‘v’:朝下三角形(triangle_down marker)
‘^’:朝上三角形(triangle_up marker)
‘<‘:朝左三角形(triangle_left marker)
‘>’:朝右三角形(triangle_right marker)
‘1’:(tri_down marker)
‘2’:(tri_up marker)
‘3’:(tri_left marker)
‘4’:(tri_right marker)
‘s’:正方形(square marker)
‘p’:五边星(pentagon marker)
‘*’:星型(star marker)
‘h’:1号六角形(hexagon1 marker)
‘H’:2号六角形(hexagon2 marker)
‘+’:+号标记(plus marker)
‘x’:x号标记(x marker)
‘D’:菱形(diamond marker)
‘d’:小型菱形(thin_diamond marker)
‘|’:垂直线形(vline marker)
‘_’:水平线形(hline marker)
常用颜色
局部放大
设置网格线
import matplotlib.pyplot as plt
import numpy as np
# plt.style.use("classic")
# fig画布;axes子图区域
fig, axes = plt.subplots(2, 3, figsize=(12, 4))
# 准备数据
x = np.arange(1, 11)
# 开启默认网格
axes[0][0].plot(x, x ** 3, 'g', lw=2)
axes[0][0].grid(True)
axes[0][0].set_title('default grid')
# 只开启X轴网格
axes[0][1].plot(x, x ** 3, 'r')
axes[0][1].grid(True, axis='x')
axes[0][1].set_title('only x grid')
# 只开启Y轴网格b
axes[0][2].plot(x, x ** 3, 'b')
axes[0][2].grid(True, axis='y')
axes[0][2].set_title('only y grid')
# 自定义网格颜色
axes[1][0].plot(x, x ** 3, 'g', lw=2)
axes[1][0].grid(True, color='red')
axes[1][0].set_title('customer grid1')
# 自定义网格线型
axes[1][1].plot(x, x ** 3, 'r', lw=2)
axes[1][1].grid(True, ls='dashed')
axes[1][1].set_title('customer grid2')
# 自定义线宽
axes[1][2].plot(x, x ** 3, 'b', lw=2)
axes[1][2].grid(True, lw=3.0)
axes[1][2].set_title('customer grid3')
fig.tight_layout()
plt.show()
7. 设置图片的显示大小以及保存图片
plt.rcParams['savefig.dpi'] = 300 #图片像素
plt.rcParams['figure.dpi'] = 300 #分辨率
# 默认的像素:[6.0,4.0],分辨率为100,图片尺寸为 600&400
# 指定dpi=200,图片尺寸为 1200*800
# 指定dpi=300,图片尺寸为 1800*1200
plt.savefig("./my_picture.png",dpi=300)
#保存图片
8. 图片存为矢量图并且插入Word
目前使用的方法是先存为*.svg, 再转为 *.emf然后插入Word,
但问题出在了从*.svg 到 *.emf这一步。
很多人推荐利用Visio进行转换,但是Visio转出来的图片和原图并不一样,线条各种漂移。
999. 其他常用命令
plt.savefig('e:/test.png') # 保存图片
999.1 配置子图