python数据可视化-matplotlib学习总结

news2024/11/16 9:46:38

目录

(一)常见的图形

1、趋势图(直线图):plot()

2、散点图:scatter():

(二)统计图形

1、柱状图:bar(

2、条形图:barh()

3、直方图:hist()

4、饼图:pie()

5、级线图:polar()

6、气泡图(散点图):scatter()

7、树状图(棉棒图):stem()

8、箱线图:boxplot()

9、误差棒图:errorbar()

 (三)图形样式

1、设置刻度样式

2、增加指示注解与无指示注解

3、标题与坐标轴的投影效果

4、转移坐标轴

5、划分窗口:subplot()

(一)常见的图形

1、趋势图(直线图):plot()

import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)  # 生成0~10之间的100个数
y = np.sin(x)  # 计算纵坐标
plt.plot(x, y)  # 绘制折线图
plt.title('Sin函数图像')  # 添加标题
plt.xlabel('x轴')  # 添加x轴标签
plt.ylabel('y轴')  # 添加y轴标签
#plt.xlim(-2,2)     #设定 x 坐标轴的显示范围在[-2,2]
#plt.axhline(y=0)    #添加水平参考线
#plt.grid()  #绘制网格线
#plt.axhline(y=0)    #绘制y=0的刻度线
#plt.axvspan(-4,2,facecolor='gray', alpha=0.3)    #添加在-4到2的垂直方向的颜色区域,填充颜色为灰色,透明度为 0.3

plt.show()  # 显示图形

pyplot 参数:

  • x:x轴数据,一般是一个数组或列表。

  • y:y轴数据,一般是一个数组或列表。

  • label:标签,用于说明数据的名称或含义。xlabel用于x轴,ylabel用于y轴

  • color或c:颜色,默认是蓝色,也可以是RGB值或颜色名称。

  • marker:点标记,用于显示每个数据点的形状。

  • linestyle或ls:线条类型,用于控制线条的样式、粗细等。

  • linewidth或lw:线条宽度,用于控制线条的宽度。

  • alpha:透明度,用于控制线条或点标记的透明度。

  • xlimylim:x轴和y轴的范围,用于设定坐标轴的刻度范围。

  • title:标题,用于给整个图形添加标题。

  • gird:绘制刻度线网格线

  • axhline:绘制平行于x轴的水平参数线

  • axvspan:绘制垂直于 x轴的水平参数区域

  • annotate:添加图形内容细节的指向型注释

  • text:添加图形内容细节的无指向型注释

  • legend:用于在图像中添加自定义的图例

 结果:

 

2、散点图:scatter():

import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np

# 设置数据
x = np.random.rand(50)
y = np.random.rand(50)
# 绘制散点图
plt.scatter(x, y, s=50, c='b', marker='o', alpha=0.5)
# 添加标题和坐标轴标签
plt.title('散点图')
plt.xlabel('x轴')
plt.ylabel('y轴')
# 显示图像
plt.show()

参数解释:

  • x :散点图 x 轴的数据;
  • y :散点图 y 轴的数据;
  • s :散点的尺寸,即标记的大小;
  • c :散点的颜色;
  • marker :散点的形状,默认是圆形;
  • alpha :透明度,取值范围为 0~1,值越小透明度越高。

 结果:

 

(二)统计图形

1、柱状图:bar(

bar(x, height, width=0.8, bottom=None, align='center', data=None, **kwargs)
  • x:柱形图的 x 坐标数据;
  • height:柱形图的高度,对应于每个 x 坐标数据的高度;
  • width:柱形的宽度,默认为 0.8;
  • bottom:柱形的底部位置,默认为 None,表示将底部设定为绘图平面的 y 轴;
  • align:柱形的对齐方式,可以是 'center''edge' 等;
  • data:数据源对象,可以是多种数据类型,例如 DataFrame、Series、数组等;
  • kwargs:其他可选参数,包括柱形颜色、边框颜色、标签位置等相关设置。
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np

# 生成数据
x = ['A', 'B', 'C', 'D', 'E']
y = np.random.randint(0, 10, size=(len(x)))

# 绘制柱状图
plt.bar(x, y, width=0.6, bottom=None, align='center', alpha=0.8)

# 添加标签
for i, v in enumerate(y):
    plt.text(i, v+0.2, str(v), ha='center', fontsize=10)
# 显示图形
plt.show()

 

2、条形图:barh()

barh(y, width, height=0.8, left=None, align='center', data=None, **kwargs)
  • y:柱形条的 y 坐标数据;
  • width:柱形条的宽度,对应于每个 y 坐标数据的宽度;
  • height:柱形条的高度,默认为 0.8;
  • left:柱形的左侧位置,默认为 None,表示将左侧设定为绘图平面的 x 轴;
  • align:柱形的对齐方式,可以是 'center''edge' 等;
  • data:数据源对象,可以是多种数据类型,例如 DataFrame、Series、数组等;
  • kwargs:其他可选参数,包括柱形颜色、边框颜色、标签位置等相关设置。
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np

# 生成数据
y = ['A', 'B', 'C', 'D', 'E']
x = np.random.randint(0, 10, size=(len(y)))

# 绘制水平柱状图
plt.barh(y, x, height=0.6, left=None, align='center', alpha=0.8)

# 添加标签
for i, v in enumerate(x):
    plt.text(v+0.2, i, str(v), va='center', fontsize=10)

# 显示图形
plt.show()

 

3、直方图:hist()

hist(x, bins=None, range=None, density=False, 
    weights=None, cumulative=False, bottom=None,
    histtype='bar', align='mid', orientation='vertical',
    rwidth=None, log=False, color=None, label=None, stacked=False, 
    normed=None, **kwargs)

  • x:需要绘制直方图的数据;
  • bins:用于指定每个直方的宽度,可以是单个整数、序列或者字符串。默认为 10,表示将数据范围等分成 10 份;
  • range:需要绘制直方图的数据范围;
  • density:是否将直方图归一化,其值默认为 False;
  • weights:用于构成直方图的权重数组;
  • cumulative:是否需要绘制累积频率图,默认为 False;
  • bottom:堆叠图的底部高度;
  • histtype:指定直方图类型,可以是 'bar''barstacked''step''stepfilled' 等;
  • align:直方图的对齐方式;
  • orientation:直方图的绘制方式,可以是 'horizontal' 或者 'vertical'
  • rwidth:直方图的相对宽度,值为 1 的时候没有空隙,值为 0.5 的时候间距等于直方图宽度的一半;
  • log:是否对 y 轴进行对数变换;
  • color:直方图的颜色;
  • label:直方图的标签;
  • stacked:是否采用堆叠方式绘制直方图,默认为 False;
  • normed:已被弃用,可以使用 density 参数替代;
  • kwargs:其他可选参数,包括直方图边框、填充、颜色等相关设置。
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(2022)
data = np.random.randn(10000)

# 绘制直方图
plt.hist(data, bins=40, range=(-4, 4), density=False, alpha=0.8, color='blue')
plt.xlabel('x')
plt.ylabel('频率')
plt.title('直方图')

# bins 设为 40,表示将数据范围等分成 40 份;
# range 设为 (-4, 4),表示数据范围在[-4,4]之间
# density 设为 False,表示不需要将直方图归一化;
# alpha 设为 0.8,表示直方图颜色透明度为 0.8;
# color 设为 'blue',表示直方图颜色为蓝色;

# 显示图像
plt.show()

 

4、饼图:pie()

pie(x, explode=None, labels=None, colors=None, 
    autopct=None, pctdistance=0.6, shadow=False, 
    labeldistance=1.1, startangle=None, radius=None, counterclock=True, 
    wedgeprops=None, textprops=None, center=(0, 0), frame=False, 
    rotatelabels=False, **kwargs)
  • x:用于绘制饼图的数据,可以是数组、列表、元组等可迭代对象;
  • explode:用于指定每个饼图之间的偏移量;
  • labels:用于指定每个饼图对应的标签;
  • colors:用于指定每个饼图对应的颜色;
  • autopct:用于指定每个饼图占比的格式字符串;
  • pctdistance:用于指定占比标签距离圆心的距离;
  • shadow:是否需要添加阴影效果,默认为 False;
  • labeldistance:指定每个饼图标签与圆心的距离的倍数;
  • startangle:指定饼图开始绘制的角度,默认为 0;
  • radius:指定饼图的半径;
  • counterclock:指定饼图绘制的方向,默认为 True,即逆时针方向绘制;
  • wedgeprops:用于指定饼图环的属性,例如 linewidth、edgecolor 等;
  • textprops:用于指定占比标签的属性,例如 fontsize、color 等;
  • center:指定饼图的中心位置坐标;
  • frame:是否需要绘制边框,默认为 False;
  • rotatelabels:是否需要对饼图标签进行旋转,默认为 False;
  • kwargs:其他可选参数,包括绘图风格、字体、字号等相关设置。

import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(2022)
data = np.random.randn(10000)

import matplotlib.pyplot as plt

# 生成数据
labels = ['A', 'B', 'C', 'D', 'E']
sizes = [15, 30, 45, 10, 5]
colors = ['red', 'blue', 'green', 'orange', 'gray']
explode = [0.1, 0, 0, 0, 0]

# 绘制饼图
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
        autopct='%1.1f%%', shadow=True, startangle=90)

plt.axis('equal')
plt.show()

 

5、级线图:polar()

polar(theta, r, **kwargs)
  • theta:用于绘制极坐标图的角度数据,单位为弧度;
  • r:用于绘制极坐标图的大小数据,表示一组与角度对应的大小数据,与 theta 相对应;
  • kwargs:其他可选参数,包括极坐标的填充、颜色等相关设置。
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np

# 生成一些随机数据
theta = np.linspace(0, 2*np.pi, 1000)
r = np.random.rand(1000)

# 绘制极坐标图
plt.polar(theta, r)
plt.show()

 

6、气泡图(散点图):scatter()

scatter(x, y, s=None, c=None, marker=None, cmap=None, 
norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, 
edgecolors=None, plotnonfinite=False, data=None, **kwargs)
  • x:散点图的 x 坐标;
  • y:散点图的 y 坐标;
  • s:散点的大小(面积),可以是常数、数组、列表或者元组;
  • c:散点的颜色,可以是常数、数组、列表或者元组;
  • marker:散点的标记符号;
  • cmap:用于指定散点颜色的 colormap;
  • norm:用于指定 colormap 的归一化方法;
  • vmin:用于指定 colormap 的最小值;
  • vmax:用于指定 colormap 的最大值;
  • alpha:散点的透明度;
  • linewidths:用于指定散点边缘线宽度;
  • edgecolors:用于指定散点边缘线颜色,默认为 'face',表示使用散点颜色;
  • plotnonfinite:是否需要绘制非有限数值,默认为 False;
  • data:数据源对象,可以是多种数据类型,例如 DataFrame、Series、数组等;
  • kwargs:其他可选参数,包括散点颜色、边缘线颜色、标签位置等相关设置
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np

# 生成数据
np.random.seed(2022)
x = np.random.randn(50)
y = np.random.randn(50)
colors = np.random.randint(0, 10, 50)

# 绘制散点图
plt.scatter(x, y, s=20*abs(x+y)+100, c=colors, cmap='viridis', alpha=0.8)

# 添加红色边缘线
plt.scatter(x, y, s=20*abs(x+y)+100, facecolors='none', edgecolors='red', linewidths=1)

# 添加标题和坐标轴标签
plt.title('气泡图')
plt.xlabel('X')
plt.ylabel('Y')

# 显示图像
plt.show()

 

7、树状图(棉棒图):stem()

stem(x, y, linefmt=None, markerfmt=None, basefmt=None, bottom=None, 
    label=None, use_line_collection=None, data=None, **kwargs)
  • x:树状图的 x 坐标;
  • y:树状图的 y 坐标;
  • linefmt:用于指定树状图线段的格式字符串;
  • markerfmt:用于指定树状图标记的格式字符串;
  • basefmt:用于指定树状图基线的格式字符串;
  • bottom:使用堆叠样式绘制树状图时的基线高度;
  • label:树状图的标签;
  • use_line_collection:是否使用 LineCollection 来绘制线段,默认为 True;
  • data:数据源对象,可以是多种数据类型,例如 DataFrame、Series、数组等;
  • kwargs:其他可选参数,包括线段样式、标记样式、标签位置等相关设置。
# 生成数据
np.random.seed(2022)
x = np.linspace(0.0, 2.0*np.pi, 100)
y = np.sin(x)

x = np.arange(0, 10, 1)
y = np.random.rand(10)

# 绘制离散波形图
plt.stem(x, y)
plt.show()

8、箱线图:boxplot()

boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, 
    widths=None, patch_artist=None, bootstrap=None, usermedians=None, 
    conf_intervals=None, meanline=None, showmeans=None, showcaps=None, 
    showbox=None, showfliers=None, boxprops=None, labels=None, 
    flierprops=None, medianprops=None, meanprops=None, capprops=None, 
    whiskerprops=None, manage_xticks=True, autorange=False, zorder=None, 
    data=None)
  • x:箱线图的数据,可以是数组、列表、DataFrame 等;
  • notch:是否绘制缺口,默认为 False,表示绘制箱线图而非半个月牙形的齿状图;
  • sym:用于指定离群点的标记符号,默认为 None
  • vert:是否绘制竖向的箱线图,默认为 True
  • whis:用于指定箱线图的上下位置(须)的长度,默认为 1.5
  • positions:用于指定箱线图的位置,默认为 [1, 2, ..., n],其中 n 为数据列数量;
  • widths:用于指定箱线图的宽度;
  • patch_artist:是否允许填充箱线图,主要用于自定义颜色和样式,默认为 False
  • bootstrap:用于指定计算置信区间的样本数;
  • usermedians:手动指定中位数值;
  • conf_intervals:用于指定计算置信区间方法和置信水平,默认为 None
  • meanline:是否绘制均值线,默认为 False
  • showmeans:是否显示均值值,默认为 False,通常不建议显示;
  • showcaps:是否显示箱线图末端的 whisker 线段,默认为 True
  • showbox:是否显示箱线图框体,默认为 True
  • showfliers:是否显示离群点,默认为 True
  • boxprops:用于指定箱线图框体的属性,例如 linewidth、edgecolor 等;
  • labels:用于指定箱线图的标签;
  • flierprops:用于指定离群点的属性,例如 markersize、markerfacecolor 等;
  • medianprops:用于指定中位数线的属性,例如 linewidth、color 等;
  • meanprops:用于指定均值线的属性,例如 linewidth、linestyle、color 等;
  • capprops:用于指定箱线图 whisker 线段末端的帽子的属性,例如 linewidth、linestyle、color 等;
  • whiskerprops:用于指定箱线图 whisker 线段的属性,例如 linewidth、linestyle、color 等;
  • manage_xticks:是否需要自动管理 x 轴刻度,默认为 True
  • autorange:是否自动调整坐标轴范围,默认为 False
  • zorder:用于指定图层顺序,通常不需要设置;
  • data:数据源对象,可以是多种数据类型,例如 DataFrame、Series、数组等。
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np

# 生成一些随机数据
data = np.random.randn(100, 5)

# 绘制箱线图
plt.boxplot(data)
plt.show()

 

 

9、误差棒图:errorbar()

errorbar(x, y, yerr=None, xerr=None, fmt='', ecolor=None, elinewidth=None, 
    capsize=None, barsabove=False, lolims=False, uplims=False, xlolims=False, 
    xuplims=False, errorevery=1, capthick=None, label='', **kwargs)
  • x:误差棒图的 x 坐标;
  • y:误差棒图的 y 坐标;
  • yerr:用于指定误差范围的垂直线段长度,可以使数字、标量或者数组;
  • xerr:用于指定误差范围的水平线段长度,可以使数字、标量或者数组;
  • fmt:用于指定点的颜色、线型和标记符号的格式;
  • ecolor:用于指定误差线段和帽子的颜色;
  • elinewidth:用于指定误差线段的线宽;
  • capsize:用于指定误差帽子的大小;
  • barsabove:是否将误差棒图绘制在数据点之上;
  • lolims:是否绘制小于数据点的下限误差;
  • uplims:是否绘制大于数据点的上限误差;
  • xlolims:是否绘制小于数据点的水平下限误差;
  • xuplims:是否绘制大于数据点的水平上限误差;
  • errorevery:用于指定错误条目的抽样间隔;
  • capthick:用于指定误差帽子的线宽;
  • label:标注名称;
  • kwargs:其他可选参数,包括误差帽子哪里停止等相关设置。
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np

#生成数据
x = np.arange(0, 10, 1)
y = np.random.rand(10)
yerr = np.random.rand(10) * 0.2

# 绘制带误差线的散点图
plt.errorbar(x, y, yerr=yerr, fmt='o')
plt.show()

 (三)图形样式

1、设置刻度样式

设置刻度样式需要两个方法:xticks与yticks:

xticks(ticks=None, labels=None, **kwargs)
yticks(ticks=None, labels=None, **kwargs)
  • ticks:用于设置刻度位置的序列或者数组;
  • labels:用于设置刻度标签的序列或者数组;
  • kwargs:其他可选参数,例如字体、字号、旋转角度等。

常用场景

设置刻度标签字体大小

import matplotlib.pyplot as plt

# 创建图形,并设置 x 轴、y 轴刻度标签字体大小为 14
fig, ax = plt.subplots()
ax.tick_params(axis='both', labelsize=14)

 设置刻度间隔和范围

import numpy as np
import matplotlib.pyplot as plt

# 创建图形并绘制曲线
x = np.linspace(0, 10, 100)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)

# 设置 x 轴刻度范围为 0 到 10,刻度间隔为 2
ax.set_xticks(np.arange(0, 11, 2))

自定义刻度标签

import numpy as np
import matplotlib.pyplot as plt

# 创建图形并绘制曲线
x = np.linspace(0, 10, 100)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)

# 自定义 y 轴刻度标签
ax.set_yticks([-1, 0, 1])
ax.set_yticklabels(['Low', 'Medium', 'High'])

隐藏刻度

import numpy as np
import matplotlib.pyplot as plt

# 创建图形并绘制曲线
x = np.linspace(0, 10, 100)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)

# 隐藏 y 轴刻度
ax.tick_params(axis='y', which='both', length=0)

2、增加指示注解与无指示注解

添加指示注解:

annotate(text, xy, xytext=None, arrowprops=None, **kwargs)
  • text:注释文本内容;
  • xy:注释目标坐标,表示箭头所在位置;
  • xytext:注释文本的位置,如果未指定则默认为 xy 参数;
  • arrowprops:箭头的属性,可以指定箭头的长度、宽度、颜色等;
  • kwargs:其他一些可选参数,包括文本颜色、字体、字号等。

import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np

# 生成数据
x = np.linspace(0, 1, 100)
y = np.sin(x*10)

# 绘制 sin(x) 的图像
plt.plot(x, y)

# 添加注释:最大值处对应的 x 坐标和 y 坐标
max_y = np.max(y)
max_idx = np.argmax(y)
plt.annotate(f'Max={max_y:.2f}', xy=(x[max_idx], max_y),
             xytext=(x[max_idx]-0.2, max_y+0.3),
             arrowprops=dict(arrowstyle='->', lw=2))

# 显示图形
plt.show()

 

添加无指示注解

text(x, y, s, fontdict=None, withdash=False, **kwargs)
  • x 和 y:文本框的位置,可以是图像坐标、数据坐标或者坐标轴分数坐标等;
  • s:文本标签内容;
  • fontdict:字体属性参数,支持字体、字号、颜色等相关设置;
  • withdash:文本边框属性,可以设置是否使用虚线边框;
  • kwargs:其他可选参数,包括纵横比、文本排列、旋转角度、对齐方式等相关设置。
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np

# 生成数据
x = np.linspace(-5, 5, 100)
y = np.sin(x)

# 绘制 sin(x) 的图像
plt.plot(x, y)

# 添加文本标签:最大值处对应的 x 坐标和 y 坐标
max_y = np.max(y)
max_idx = np.argmax(y)
plt.text(x[max_idx], max_y, f'Max={max_y:.2f}', fontsize=12,
         color='red', ha='center', va='bottom')

# 显示图形
plt.show()

3、标题与坐标轴的投影效果

设置投影效果需要用到set_path_effects()

import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.patheffects as pe

x = np.linspace(0, 10, 100)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)

ax.plot(x, y)
ax.set_title('sin(x)')

# 设置标题阴影效果
title_text_obj = ax.set_title('Title', fontsize=18, fontweight='bold')
title_text_obj.set_path_effects([pe.withStroke(linewidth=2, foreground='gray')])

# 设置坐标轴标签阴影效果
x_label_obj = ax.set_xlabel('X Label', fontsize=16)
y_label_obj = ax.set_ylabel('Y Label', fontsize=16)
x_label_obj.set_path_effects([pe.withStroke(linewidth=1, foreground='gray')])
y_label_obj.set_path_effects([pe.withStroke(linewidth=1, foreground='gray')])

plt.show()

4、转移坐标轴

转移坐标轴需要用到set_zorder方法

import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
fig, ax = plt.subplots()

ax.plot(x, y)
ax.set_title('sin(x)')

# 将 x 轴和 y 轴的刻度放到图形的顶部和右侧
ax.xaxis.tick_top()
ax.yaxis.tick_right()

# 设置标题和坐标轴的深度值
ax.title.set_zorder(1)
ax.xaxis.label.set_zorder(1)
ax.yaxis.label.set_zorder(1)
ax.xaxis.set_tick_params(pad=10, zorder=1)
ax.yaxis.set_tick_params(pad=10, zorder=1)

# 设置坐标轴投影线条的样式和深度值
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['top'].set_linestyle('-')
ax.spines['right'].set_linestyle('-')
ax.spines['top'].set_zorder(0)
ax.spines['right'].set_zorder(0)

plt.show()

 

 

5、划分窗口:subplot()

subplot(nrows, ncols, index, **kwargs)
  • nrows:子图表格的行数;
  • ncols:子图表格的列数;
  • index:子图在表格中的位置(从左到右、从上到下的编号);
  • kwargs:其他可选参数,例如坐标轴刻度、标题、标签字体等。
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei,Times New Roman, Arial'#设置字体格式,显示中文、正负号,罗马数字
import matplotlib.pyplot as plt
import numpy as np

#生成数据
np.random.seed(2022)
x = np.linspace(0.0, 4.0*np.pi, 100)
y_sin = np.sin(x)
y_cos = np.cos(x)

# 绘制正弦函数
plt.subplot(2, 1, 1)
plt.plot(x, y_sin, 'g-', linewidth=2, label='sin(x)')
plt.legend(loc='upper right')
plt.title('Sin(x)与Cos(x)')

# 绘制余弦函数
plt.subplot(2, 1, 2)
plt.plot(x, y_cos, 'r-', linewidth=2, label='cos(x)')
plt.legend(loc='lower right')

plt.xlabel('X')

# 显示图像
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/612196.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RSA加密算法解析

目录 RSA加密 数学原理 证明: 欧拉函数 欧拉定理 模反元素 模运算 指数运算 同余 欧几里德算法GCD 填充(padding) 对称加密的应用工作流程 非对称加密的应用工作流程 1)加密过程 2)解密过程 代码实现 密码学知识扩展 加密体制 如何破解…

亚马逊云科技出海日倒计时,潮向新世界,亮点抢先知

数字化浪潮之下,中国企业的全球化步伐明显提速。从“借帆出海”到“生而全球化”,中国企业实现了从传统制造业“中国产品”出口,向创新“中国技术”和先导“中国品牌”的逐步升级。 作为全球云计算的开创者与引领者,亚马逊云科技…

org.apache.commons.io.monitor+logback.xml+vue实时显示当前日志信息

使用记录: 第一: 刷新页面导致session问题 可以在java的session中记录,如果是同一个客户重新链接的话,直接返回java的session的数据ssemiter给前端,前端自动接着获取日志。 ssemiter:详情自行百度ssemit…

墨天轮专访TDengine陶建辉:坚持做难而正确的事,三次创业成就不悔人生

导读: 时序数据库(Time Series Database)在最近几年被越来越多的用户接受并使用,并有广泛的应用场景。云原生时序数据库 TDengine 一直稳居墨天轮时序数据库榜首,其近期的海外发展也初见成效。本期,墨天轮技…

Mybatis(黑马程序员)

1. Mybatis基础操作 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。 通过分析以上的页面原型和需求,我们确定了功能列表: 查询 根据主键ID查询条件查询 新增 更新 …

分享几个实用又有趣的工具类网站

今天来给大家分享几个众多网友们推荐的,实用又有趣的工具类网站 DeepL翻译:免费的在线翻译网站,大名鼎鼎的翻译神器 DeepL,翻译准确、语句通顺,效果相当好。 https://www.deepl.com/translator BgSub 消除或者替换图…

几句话说清楚数据库的基本范式

第一范式 1NF:属性不能再被拆分。 人(身份证号, 姓名, 性别, 联系方式) 不满足 1NF因为联系方式包含了电话号码、电子邮箱、微信、QQ 等人(身份证号, 姓名, 性别, 电话号码) 满足 1NF 第二范式 2NF:不存在非主属性对主键的部分函数依赖关系。 R(A, B,…

替换jar包中的yml,class等文件的方法

文章目录 1.使用场景2.先准备好待替换的文件3.下载服务器上的jar包4.解压出来指定的文件5.将文件打入jar包6.查看是否替换成功 1.使用场景 由于线上项目中突然爆出一个bug问题,影响到用户使用,但是 线上的jar包版本,已经是很久的了&#xff…

rpmbuild编译安装制作rpm包

什么是rpm包? rpm 相当于windows中的安装文件,它会自动处理软件包之间的依赖关系。 rpm优点: 包管理系统简单,通过几个命令就可以实现包的安装、升级、卸载。 安装速度比源码包快的多。 缺点: 经过编译,不能看到源代码,功能选择不如源码灵活。依赖性强。 首先说一下流程…

基于RPC协议的接口自动化测试可以用Python语言实现

基于RPC协议的接口自动化测试可以用Python语言实现。下面是实现步骤: 1、安装依赖库,如protobuf、grpc。 2、编写.proto文件定义接口参数和返回值。 3、使用protoc编译.proto文件生成Python代码。 4、编写客户端代码调用远程接口进行测试。 具体实现…

C++【红黑树封装mapset】

文章目录 前言(一) 修改原红黑树(1)逐步修改并调试运行(2)红黑树的迭代器(3)最后一步最重要的 二、源代码压缩包 前言 我们在开始之前,首先要明白一点,前面我…

一文带你了解MySQL之事务隔离级别和MVCC

目录 一、数据准备二、事务隔离级别2.1 事务并发执行遇到的问题2.2 SQL标准中的四种隔离级别2.3 MySQL中支持的四种隔离级别 三、MVCC3.1 版本链3.2 ReadView3.2.1 READ COMMITTED3.2.2 REPEATABLE READ 3.3 MVCC小结 四、关于purge五、总结 一、数据准备 为了我们学习的顺利进…

一篇文章搞懂CMake(gcc、g++、cmake解释)

一篇文章搞懂CMake (gcc、g、cmake解释) 这里写目录标题 一篇文章搞懂CMake (gcc、g、cmake解释)gccgcmake1. CMake 流程如何使用cmake?简单的CMake.txt文件 参考 gcc gcc命令来自英文词组“GNU Compiler Collection”…

4.C++多线程-- unique_lock(类模板)

1.unique_lock 1. unique_lock<mutex> myUniLock(myMutex); 完全可以取代lock_guard 2. unique_lock 也可以使用----std::adopt_lock 3.使用adopt_lock&#xff0c;之前要先使用lock. 4.std::chrono::milliseconds my_sleepTime(20000)//20000毫秒 std::this_thread:…

运维小白必学篇之基础篇第十一集:系统进程实验

系统进程实验 实验作业&#xff1a; 1、利用top命令查看当前系统进程&#xff0c;要求没5秒刷新一次&#xff0c;分别按照CPU使用率&#xff0c;内存使用量&#xff0c;CPU使用时间&#xff0c;PID分别排序一次 每5秒刷新一次&#xff1a;top -d 5 按照CPU使用率排序&#xf…

【python】如何入门python?

文章目录 前言一、为什么学习Python&#xff1f;二、学习Python的前置条件三、入门Python的步骤3.1 安装Python3.2 安装Python开发环境3.3 学习Python基础语法3.4 编写你的第一个Python程序3.5 学习Python的高级特性3.6 使用Python库和框架 四、Python入门的资源五、常见的Pyth…

allure报告中如何让测试步骤更清晰

一、allure step测试用例步骤说明 allure step编写测试用例有两种方式 1、with allure.step()用在测试用例中 公共方法代码&#xff1a; # common_fucntion.py import allure import pytest from common.tools.log_util import LoggerrunlogLogger().get_log流程性的用例&a…

【FMC129】 基于JESD204B接口的8通道125MSPS 16位AD采集FMC子卡

板卡概述 FMC129是一款8通道125MHz采样率16位AD采集FMC子卡&#xff0c;符合VITA57.1规范&#xff0c;可以作为一个理想的IO模块耦合至FPGA前端&#xff0c;8通道AD通过高带宽的FMC连接器&#xff08;HPC&#xff09;连接至FPGA从而大大降低了系统信号延迟。 该板卡支持板上可编…

git commit之前,没有pull最新代码,导致无法push代码如何解决?——git三板斧

一、报错&#xff1a; 如果在 git commit 之前没有 pull 最新代码&#xff0c;再进行 push 操作可能会出现冲突&#xff0c;导致无法 push 代码。此时&#xff0c;git 会提示类似以下的错误信息&#xff1a; error: failed to push some refs to gitgithub.com:username/repo…

OSSIM进行主机漏洞扫描(03)

OSSIM进行主机漏洞扫描方式 按照如图选择&#xff0c;ENVIRONMENT–SCAN JOBS–NEW SCAN JOB进入新增页面 其中各选项含义如下 Job Name:扫描任务名称。 Select Sensor:扫描的嗅探器。 Profile:扫描的类型&#xff0c;包括Deep- Non destructive Full and Slow scan(深入)、D…