Matplotlib 是一个数字绘图库,可以绘制多种图形
绘制图形
曲线图
import matplotlib.pyplot as pltclass PltDemo:def __init__(self) -> None:# 数据self.squares = [1, 4, 9, 16, 25]def init_ax(self):# flg:由生成的一系列绘图构建成的整体个图形# ax:表示图形中的绘图,使用这个变量来定义和绘制图形fig, ax = plt.subplots()return axdef ax_setting(self, ax):# 绘图,plot可以多次调用,添加多个图形ax.plot(self.squares)def showGraphy(self):plt.show()if __name__ == "__main__":pltDemo = PltDemo()ax = pltDemo.init_ax()pltDemo.ax_setting(ax)pltDemo.showGraphy()
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/69f6ed29f46a4c33a6328428fdd9f578.png ==500x300)
整合np
显示sin区线
import numpy as np
import matplotlib.pyplot as plt# 生成数据
x = np.arange(0, 6, 0.1) # 以0.1为单位,生成0到6的数据
y = np.sin(x)# 绘制图形
plt.plot(x, y)
plt.show()
添加多个图形
# coding: utf-8
import numpy as np
import matplotlib.pyplot as plt# 生成数据
x = np.arange(0, 6, 0.1) # 以0.1为单位,生成0到6的数据
y1 = np.sin(x)
y2 = np.cos(x)# 绘制图形
plt.plot(x, y1, label="sin")
plt.plot(x, y2, linestyle = "--", label="cos")
plt.xlabel("x") # x轴的标签
plt.ylabel("y") # y轴的标签
plt.title('sin & cos')
plt.legend()
plt.show()
读取图像
本地读取
import matplotlib.pyplot as plt
from matplotlib.image import imreadimg = imread('../dataset/lena.png') #读入图像
plt.imshow(img)plt.show()
设置样式
个性化样式
def ax_setting(self, ax):# 绘图ax.set_title("title", fontsize=24)ax.set_xlabel("xlabe", fontsize=14)ax.set_ylabel("ylabel", fontsize=14)ax.tick_params(labelsize=14) # 刻度样式ax.ticklabel_format(style='plain')# 设置初始值ax.plot(self.input_value, self.squares, linewidth=3) #图形的线条粗细
内置样式
def init_ax(self):print(plt.style.available)plt.style.use('seaborn')fig, ax = plt.subplots()return ax
设置散列点
ax.scatter(2, 4, s=200) #设置某个点的大小ax.scatter(self.input_value, self.squares, s=100)ax.scatter(self.input_value, self.squares,color='red', s=100)
设置坐标范围
# 设置每个坐标轴的取值范围,x=0~100, y=0~1
ax.axis([0, 50, 0, 50])
使用plotly.express在浏览器中显示图形
Plotly Express是Matplotlib的一个子集
import plotly.express as pxposs_results = range(1, 7)
frequencies = [185, 164, 171, 168, 145, 167]
title = "Results of Rolling One D6 1,000 Times"
labels = {'x': 'Result', 'y': 'Frequency of Result'}
fig = px.bar(x=poss_results, y=frequencies, title=title, labels=labels)
fig.show()