文章目录

  • 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')		# 设置为华文宋体

python matplotlib标记某个位置 matplotlib标点_坐标轴


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)

常用颜色

python matplotlib标记某个位置 matplotlib标点_图例_02

局部放大


设置网格线


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 配置子图