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

目录

(一)常见的图形

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()

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【ZLM】ZLM源码阅读一

目录 初始化 RTP RTSP RTMP TCPServer的初始化 参考文档 初始化 RTP RTSP RTMP TCPServer的初始化 参考文档 本文参考: (17条消息) 《ZLToolKit源码学习笔记》(20)网络模块之TcpServer_秦时小的博客-CSDN博客 RTP https://blog.csdn.…

探秘 | 如何分辨内网和外网?

目录 💡 什么是外网IP、内网IP? 💡 对于自有路由器上网的用户,可以这样理解外网IP、内网IP 💡 几个大家经常会问的问题 什么是外网IP、内网IP?很多用户都有一个疑惑,如果不使用路由器拨号上网…

Redis实现分布式锁的原理:常见问题解析及解决方案、源码解析Redisson的使用

0、引言:分布式锁的引出 锁常常用于多线程并发的场景下保证数据的一致性,例如防止超卖、一人一单等场景需求 。通过加锁可以解决在单机情况下安全问题,但是在集群模式下就不行了。集群模式,即部署了多个服务器、并配置了负载均衡后…

ChatGPT 使用 拓展资料:2023年6月 吴恩达大咖Deeplearning.ai最新课程

ChatGPT 使用 拓展资料:2023年6月 吴恩达大咖Deeplearning.ai最新课程 Deeplearning.ai刚刚发布几个新的课程https://www.deeplearning.ai/short-courses/?utm_campaign=May%20Short%20Course%20Launch&utm_content=250952287&utm_medium=social&utm_source=link…

汽车出海势头旺,汽车零部件企业如何破浪前行?

随着国内汽车市场逐渐饱和,中国汽车企业开始寻求“汽车出海”的新市场增长点。在政府加大汽车出海政策支持力度下,根据中汽协数据,一季度的新能源汽车出口达24.8万辆,同比增长1.1倍。中国汽车行业持续深耕海外市场,出口…

SQL server入门一【简单介绍与简单建表】

SQLserver登录方式 Windows身份验证 用户名登录 通常登录名为sa,密码为下载时设置的密码 SQL server建立一个数据库 数据库中建表存储数据(输入命令建表) 数据库的简单介绍与概念 含义 可以对数据进行存储和管理的软件以及数据本身统称为数据库 组成 数据库由表…

微服务架构之RPC调用

在单体应用时,一次服务调用发生在同一台机器上的同一个进程内部,也就是说调用发生在本机内部,因此也被叫作本地方法调用。在进行服务化拆分之后,服务提供者和服务消费者运行在两台不同物理机上的不同进程内,它们之间的…

自建极简Ethercat主站-底层驱动编写

1、简介 MECM(Mini Ethercat Master),名字随便起的。已经学习了一段时间的Ethercat总线了,目前的想法就是自己简单实现一个Ethercat主站,没有太多的冗余功能,暂时不考虑太多的容错机制,仅实现目前用到的FO…

性能测试监控平台:InfluxDB+Grafana+Jmeter

前言 性能测试工具jmeter自带的监视器对性能测试结果的实时展示,在Windows系统下的GUI模式运行,渲染和效果不是太好,在linux环境下又无法实时可视化。 2023年最新出炉性能测试教程,真实企业性能压测全流程项目实战训练大合集&am…

整型在内存中的存储

目录 一、为什么内存中存储补码? 二、大小端概念 百度笔试试题: 几道小题: 一、为什么内存中存储补码? 上一节我们了解了原码,反码,补码的概念(http://t.csdn.cn/N0grg)&#xff…

1-1 统计数字问题

题目: 我的答案: 一、信息 二、分析 1.如何选择数据结构? 2.如何选择算法有很多思路? 3.如何用文件实现输入输出? 三、思考 疑问1 我选择了一开始数组选择使用数组是一个不错的选择,尤其在这个问题中…

vulnhub dc-8

1.信息搜集 端口 22,80,31337 存活ip 192.168.85.136 2.访问网站,进行信息搜集 在欢迎页面发现sql注入 sqlmap进行跑数据 python sqlmap.py -u "http://192.168.85.136/?nid1" --batch -D d7db -T users -C name,pass --dump尝试robots.txt,发现后他登…

生成程序片段(程序依赖图PDG)

生成程序片段(程序依赖图PDG) 生成程序片段 标准方法是: 基于依赖性分析的切片。 使用程序依赖图表示依赖。 从中生成切片。 我们将专注于这种方法。但是,还有其他选择。 程序依赖图 The Program Dependence Graph (PDG) 表示数据和控制依赖项&#xf…

《深入理解计算机系统(CSAPP)》第7章 链接 - 学习笔记

写在前面的话:此系列文章为笔者学习CSAPP时的个人笔记,分享出来与大家学习交流,目录大体与《深入理解计算机系统》书本一致。因是初次预习时写的笔记,在复习回看时发现部分内容存在一些小问题,因时间紧张来不及再次整理…

java单元测试( Hamcrest 断言)

java单元测试( Hamcrest 断言) 单元测试特征: 1 范围狭窄 2 限于单一类或方法 3 体积小 为什么要编写单元测试? 为了防止错误(很明显!) 而且还可以提高开发人员的生产力,因为单元测试: (1) 帮助实施——在…

力扣sql中等篇练习(二十八)

力扣sql中等篇练习(二十八) 1 每个城市最高气温的第一天 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # Write your MySQL query statement below SELECT w.city_id,MIN(w.day) day,w.degree FROM Weather w INNER JOIN (SELECT city_id,MAX(degr…

【算法学习系列】07 - 无序数组中的局部最小值问题

文章目录 说明约束条件简单说下思路解决方案随机无序数组样本生成器算法实现验证代码进行大样本随机测试验证算法正确性 说明 在算法中,局部最小值是指一个函数在一个局部范围内的最小值。 具体而言,如果一个函数在一个小区间内的取值都比该区间内的其他…

C++程序员的待遇怎么样?我来谈谈学好C++的五个关键点

有个学弟跟我谈到这样一个问题:现在我看到网上很多人都在讲,说这个做C程序员,尤其是本科毕业计算机专业,然后步入社会之后就能拿到月入过万。但是为什么自己找的这个工作啊,普遍在月薪六七千块钱左右,也就是…

利用OpenCV处理图像

OpenCV是非常流行的图像处理库,下面介绍一下其对图像的基本操作。 1. 安装与环境 安装还有点儿复杂的,但百度几篇博客基本能解决,这里就不多说了。 安装好后,要在工程中使用OpenCV的头文件和库,需要在CMakeLists.tx…

码住!IC设计常用工具合集!

芯片设计过程中,选择和使用适合的工具是非常重要的。芯片设计工具通常分为三类:EDA工具、模拟仿真工具和布局工具。 一、EDA工具 EDA工具是芯片设计的核心,它包括原理图绘制、逻辑综合、门级仿真工具和物理版图编辑等,可以帮助设计…