电商网站开发模板,北京企业建站技术,佛山网站公司,wordpress在线咨询1、什么是matplotlib
Matplotlib 是 Python 中最受欢迎的数据可视化软件包之一#xff0c;支持跨平台运行#xff0c;它是 Python 常用的 2D 绘图库#xff0c;同时它也提供了一部分 3D 绘图接口。Matplotlib 通常与 NumPy、Pandas 一起使用#xff0c;是数据分析中不可或…1、什么是matplotlib
Matplotlib 是 Python 中最受欢迎的数据可视化软件包之一支持跨平台运行它是 Python 常用的 2D 绘图库同时它也提供了一部分 3D 绘图接口。Matplotlib 通常与 NumPy、Pandas 一起使用是数据分析中不可或缺的重要工具之一。 Matplotlib 是 Python 中类似 MATLAB 的绘图工具。MATLAB是美国MathWorks公司出品的商业数学软件用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人控制系统等领域。 matplotlib 支持的图形 https://matplotlib.org/stable/gallery/index.html
2、基础使用以下都以折线图为例
from matplotlib import pyplot as plt # 绘图导入 pyplot 一般会重命名为plt
# 展示每隔两个小时的温度变化
x range(2,26,2) # [2,4,6,8 ... ,22,24]
y [15,13,14.5,17,20,25,26,26,24,22,18,15]
# 绘图
plt.plot(x,y)
# 展示图形
plt.show()上面图片存在的问题
图片的大小想要高清大图保存到本地描述信息比如x,y轴表示什么调整刻度的间距线条的样式颜色、透明度标记出特殊的点比如最高点最低点给图片加水印防伪
3、设置图片宽高、分辨率、xy轴刻度、保存图片到本地
from matplotlib import pyplot as plt # 绘图导入 pyplot 一般会重命名为plt# 展示每隔两个小时的温度变化
x range(2,26,2) # [2,4,6,8 ... ,22,24]
y [15,13,14.5,17,20,25,26,26,24,22,18,15]
figure 指的是我们画的图
figsize 宽 高
dpi 没英寸多少个点点多了放大后不会模糊有锯齿形plt.figure(figsize(20, 8), dpi80)# 绘图
plt.plot(x,y)# 设置x轴刻度
# plt.xticks(x)
xticks_lables [i/2 for i in range(4, 49)]
# plt.xticks(xticks_lables)
plt.xticks(xticks_lables[::3]) # 太密集了可以每三个取一个
# 设置y轴刻度
plt.yticks(range(min(y), max(y)1))
# 设置刻度颜色设置刻度倾斜等 参考 https://blog.csdn.net/Poul_henry/article/details/82590392# 保存
# plt.savefig(./sig_size.png)
# plt.savefig(./sig_size.svg) # 可以保存为svg矢量图格式放大不会有锯齿# 展示图形
plt.show()4、Xy轴显示字符串并旋转显示
显示10点到12点每分钟气温变化
from matplotlib import pyplot as plt
import randomx range(0, 120)
y [random.randint(20, 35) for i in range(120)]plt.figure(figsize(15, 8), dpi80)plt.plot(x,y)# 调整x 轴的刻度
xtick_lables [10:{}.format(i) for i in range(60)]
xtick_lables [11:{}.format(i) for i in range(60)]# plt.xticks(list(x)[::3], xtick_lables[::3],rotation270) # rotation 旋转的度数
plt.xticks(list(x)[::3], xtick_lables[::3],rotation60) # rotation 旋转的度数yticks_lables [{}tem.format(i) for i in range(15, 40, 2)]
plt.yticks(range(15, 40, 2), yticks_lables,rotation60)plt.show()5、Xy轴显示中文并设置字体大小
如果不设置中文不能正常显示 针对Windows 字体存放位置 C:\Windows\Fonts linux/mac可以参考 https://www.bilibili.com/video/BV1hx411d7jb?p6 也可以参考 https://www.runoob.com/numpy/numpy-matplotlib.html
from matplotlib import pyplot as plt
import random
from matplotlib import font_managermy_font font_manager.FontProperties(fnamerC:\Windows\Fonts\SIMLI.TTF, size12)x range(0, 120)
y [random.randint(20, 35) for i in range(120)]plt.figure(figsize(15, 8), dpi80)plt.plot(x,y)# 调整x 轴的刻度
xtick_lables [10:{}.format(i) for i in range(60)]
xtick_lables [11:{}.format(i) for i in range(60)]# plt.xticks(list(x)[::3], xtick_lables[::3],rotation270) # rotation 旋转的度数
plt.xticks(list(x)[::3], xtick_lables[::3],rotation60) # rotation 旋转的度数yticks_lables [{}度.format(i) for i in range(15, 40, 2)]
plt.yticks(range(15, 40, 2), yticks_lables,rotation60,fontpropertiesmy_font)plt.show()6、设置XY轴和标题的描述信息并绘制网格
from matplotlib import pyplot as plt
import random
from matplotlib import font_managermy_font font_manager.FontProperties(fnamerC:\Windows\Fonts\SIMLI.TTF, size12)x range(0, 120)
y [random.randint(20, 35) for i in range(120)]plt.figure(figsize(15, 8), dpi80)plt.plot(x,y)# 调整x 轴的刻度
xtick_lables [10:{}.format(i) for i in range(60)]
xtick_lables [11:{}.format(i) for i in range(60)]# plt.xticks(list(x)[::3], xtick_lables[::3],rotation270) # rotation 旋转的度数
plt.xticks(list(x)[::3], xtick_lables[::3],rotation60) # rotation 旋转的度数yticks_lables [{}度.format(i) for i in range(15, 40, 2)]
plt.yticks(range(15, 40, 2), yticks_lables,rotation60,fontpropertiesmy_font)# 添加描述信息
plt.xlabel(时间,fontpropertiesmy_font)
plt.ylabel(温度 单位(℃),fontpropertiesmy_font)
plt.title(10点到12点每分钟的气温变化情况,fontpropertiesmy_font)# 绘制网格
plt.grid(alpha0.9) # alpha 可以调整透明度数值越大越清晰plt.show()7、同时绘制出两条折线并添加图例、设置折线颜色折线样式
from matplotlib import pyplot as plt
from matplotlib import font_manager
a 是自己 b 是同桌
x 轴是年龄 y 轴是女朋友的数量a [1,0,2,1,5,2,3,6,9,5,1,2,3,1,2,3,2,1,2,1]
b [1,3,1,1,2,1,1,1,4,4,4,2,2,2,4,1,1,4,1,2]x range(11, 31)my_font font_manager.FontProperties(fnamerC:\Windows\Fonts\SIMLI.TTF, size12)# 设置图形大小
plt.figure(figsize(15, 8), dpi80)# plot 增加 label 和 plt.legend() 可以显示tuli
# plot 增加 color 可以修改 线条颜色
# linestyle 线条风格 linestyle 也适用于绘制网格
# - 实线 -- 虚线 -. 点划线 : 点虚线 留空或者空格无线条
# linewidth 线条粗细
# alpha 透明度
plt.plot(x, a, label自己, colororange, linestyle--, linewidth3, alpha0.3)
plt.plot(x, b, label同桌, color#FF69B4, linestyle-.,linewidth6, alpha0.6)# 设置x刻度
xtick_labels [{}岁.format(i) for i in x]
plt.xticks(x, xtick_labels, fontpropertiesmy_font)
plt.yticks(range(0,11))# 绘制网格 linestyle 也适用于绘制网格
plt.grid(alpha0.6, linestyle--)# 添加图例 prop 显示中文只有这里是 prop其他地方都是 fontproperties
# locupper left 参数可以修改 图例位置 默认是右上
plt.legend(propmy_font,locupper left)plt.show()8、标记最高低点添加水印
其他 图像添加image水印、图像添加背景 可 参考 https://zhuanlan.zhihu.com/p/390880393
from matplotlib import pyplot as plt
from matplotlib import font_manager
a 是自己 b 是同桌
x 轴是年龄 y 轴是女朋友的数量a [1,0,2,1,5,2,3,6,9,5,1,2,3,1,2,3,2,1,2,1]
b [1,3,1,1,2,1,1,1,4,4,4,2,2,2,4,1,1,4,1,2]x range(11, 31)my_font font_manager.FontProperties(fnamerC:\Windows\Fonts\SIMLI.TTF, size12)# 设置图形大小
plt.figure(figsize(15, 8), dpi80)# plot 增加 label 和 plt.legend() 可以显示tuli
# plot 增加 color 可以修改 线条颜色
# linestyle 线条风格 linestyle 也适用于绘制网格
# - 实线 -- 虚线 -. 点划线 : 点虚线 留空或者空格无线条
# linewidth 线条粗细
# alpha 透明度
plt.plot(x, a, label自己, colororange, linestyle--, linewidth3, alpha0.3)
plt.plot(x, b, label同桌, color#FF69B4, linestyle-.,linewidth6, alpha0.6)# 设置x刻度
xtick_labels [{}岁.format(i) for i in x]
plt.xticks(x, xtick_labels, fontpropertiesmy_font)
plt.yticks(range(0,11))# 标价最高点, 标记最高点;注意x轴和y轴的索引必须相对应
# mark表示圆圈标记edgecolors表示圆圈的颜色s表示标记点的大小
# plt.scatter(x[8], a[8], colorb)
plt.scatter(x[8], a[8], colorb, markero, edgecolorsr, s300)# 添加文本水印 其他 图像添加image水印 图像添加背景 可 参考 https://zhuanlan.zhihu.com/p/390880393
plt.text(x15, #文本x轴坐标y5, #文本y轴坐标shello world, #文本内容rotation15, #文字旋转角度hacenter, #x2.2是文字的左端位置可选center, right, leftvacenter, #y8是文字的低端位置可选center, top, bottom, baseline, center_baselinealpha0.5,fontdictdict(fontsize32,colorgrey,familymonospace, #字体,可选serif, sans-serif, cursive, fantasy, monospaceweightlight, #磅值可选light, normal, medium, semibold, bold, heavy, black) #字体属性设置
)# 绘制网格 linestyle 也适用于绘制网格
plt.grid(alpha0.6, linestyle--)# 添加图例 prop 显示中文只有这里是 prop其他地方都是 fontproperties
# locupper left 参数可以修改 图例位置 默认是右上
plt.legend(propmy_font,locupper left)plt.show()https://www.bilibili.com/video/BV1hx411d7jb?p3 https://www.bilibili.com/video/BV1hx411d7jb?p4 https://www.bilibili.com/video/BV1hx411d7jb?p5 https://www.bilibili.com/video/BV1hx411d7jb?p6 设置中文显示 https://www.bilibili.com/video/BV1hx411d7jb?p7 https://www.bilibili.com/video/BV1hx411d7jb?p8