包准备
'''初始化包'''
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
plt.rcParams['font.sans-serif'] = ['SimHei'] # 替换sans-serif字体
plt.rcParams['axes.unicode_minus'] = False # 解决坐标轴负数的负号显示问题
'''scatter'''
def get_scatter_show(x,y):
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
'''下面写ax1的相关信息'''
plt.scatter(x,#数据,下同
y,
marker='x',#用什么标记
s=10,#标记大小
c='red',#颜色
label='散点图示例'
)
plt.xlabel(r'x坐标') #坐标
plt.ylabel(r'y坐标')
plt.xlim(-20,20) #范围
# plt.ylim(0,200)
plt.title(r'散点图示例')
# my_x_ticks = np.arange(-20, 20, 2)
# plt.xticks(my_x_ticks) #刻度
# plt.grid() #网格
plt.legend()
plt.show()
'''数据准备'''
x = np.arange(-20,20)
y = np.sin(x)
get_scatter_show(x,y)
'''plot'''
def get_plot_show(x,y):
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
'''下面写ax1的相关信息'''
plt.plot(x,y,#数据
marker='',#标记
c='red',#颜色
label=r"$\sigma(t) = \frac{1}{1 + e^{-t}}$"#标签名字
)
plt.xlabel(r'x坐标') #坐标
plt.ylabel(r'y坐标')
plt.title(r'折线图示例')
# plt.xlim(0,100) #范围
# plt.ylim(0,200)
# my_x_ticks = np.arange(-20, 20, 2)
# plt.xticks(my_x_ticks) #刻度
# plt.grid() #网格
# plt.axhline(y=0, color="black", linestyle="--") #画一条渐近线
# plt.axhline(y=0.5, color="black", linestyle=":")
# plt.axhline(y=1.0, color="black", linestyle="--")
plt.legend(fontsize=14) #标签显示尺寸变14
plt.show()
'''数据准备'''
x = np.linspace(-10, 10, 100) #让间隔变多,使得图像更加平滑
y = 1 / (1 + np.exp(-x))
get_plot_show(x,y)
def get_bar_show(x,y):
width = 0.5
plt.bar(x,y,#数据
width,#宽度
color='g',
alpha=0.15,
tick_label = ['a', 'b', 'c', 'd', 'e']
)
# plt.xticks(x, ['a', 'b', 'c', 'd', 'e'])
plt.title("柱状图示例")
plt.show()
'''数据准备'''
x = np.arange(1,6)
y = np.random.randint(5,10,5)
get_bar_show(x,y)
def get_hist_show(x):
plt.hist(
x, #数据
100, #个数
normed=1, #将y轴默认的数值出现个数归一化为出现的概率
histtype='stepfilled', # 填充面积,step只有线条g
facecolor='g',
alpha=0.25#透明度
)
plt.grid(True)
plt.title('直方图示例')
plt.show()
'''数据准备'''
x = np.random.normal(loc=0.0, scale=20.0, size=1000) # 生成一个 均值/方差 给定的正态分布数组
get_hist_show(x)
def get_boxplot_show(x):
plt.boxplot(x)
plt.grid(axis="y",ls=":",color="gray",alpha=0.3)
plt.show()
'''数据准备'''
spread = np.random.rand(50) * 100
center = np.ones(25) * 50
flier_high = np.random.rand(10) * 100 + 100
flier_low = np.random.rand(10) * -100
data = np.concatenate((spread, center, flier_high, flier_low))
get_boxplot_show(data)
def get_pie_show(labels,sizes,explode):
plt.pie(
sizes, #百分比
explode=explode, #突出比例
labels=labels, #各类别名曾
autopct='%1.1f%%', #显示百分比方式
shadow=False, #阴影效果
startangle=180 #饼图起始的角度,度数,默认0为右侧水平180度开始,逆时针旋转
)
plt.axis('equal') #正圆形饼图,x/y轴尺寸相等.默认是扁图,
plt.show()
'''数据准备'''
labels = ['汽车','轮船','飞机','火车'] #类别名称
sizes = [15,10,45,10] #数量
explode = (0.05,0,0,0) #突出第1块,比例0.05
get_pie_show(labels,sizes,explode)
ef get_barh_show(x,y):
plt.barh(x, y, align="center", color="c", tick_label=['汽车','轮船','飞机','火车',"高铁"])
plt.show()
'''数据准备'''
x = np.arange(1,6)
y = np.random.randint(5,10,5)
get_barh_show(x,y)
def get_polar_show(theta, data):
plt.polar(theta, data, c="r", lw=2, marker="o", mfc="g", ms=4)
plt.show()
'''数据准备'''
theta = np.linspace(0, 2 * np.pi, 100, endpoint=False)
data = 5 * np.random.random(100)
get_polar_show(theta, data)
def get_stem_show(x,y):
plt.stem(x, y, linefmt="grey", markerfmt="D", basefmt="-")
plt.show()
'''数据准备'''
x = np.linspace(0,7,20)
y = np.exp(np.sin(x))
get_stem_show(x,y)
def get_ebar_show(x,y):
plt.errorbar(x,y,fmt="ro:",yerr=0.1,xerr=0.02)
plt.xlim(0,10)
plt.show()
x = np.linspace(0,10,20)
y = np.exp(x)
get_ebar_show(x,y)
def loss3D(X,Y,Z):
fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.viridis)
plt.show()
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
loss3D(X,Y,Z)
https://www.matplotlib.org.cn/