Python绘图-5直方图

直方图是一种统计图形,用于展示数据的分布情况。直方图的基本原理是将数据分成若干个区间,每个区间称为一个bin,然后统计每个bin中数据的数量,并将这些数量绘制在条形图中。通过直方图,我们可以直观地了解数据的分布情况,例如数据的最大值、最小值、中位数等。

下面,我们通过直方图来介绍Matplotlib的使用。

5.1绘制默认直方图

5.1.1绘图代码 

#导入相关库
import numpy as np   #导入numpy库
import matplotlib.pyplot as plt    #导入matplotlib的绘图模块

#准备相关数据
N = 1000
np.random.seed(10021) #设置随机数生成器的种子为10021,这样每次运行代码时,生成的随机数序列都是一样的,便于复现结果。
x = np.random.randn(N) * 2 + 15 #使用numpy的random.randn函数生成N个标准正态分布(均值为0,标准差为1)的随机数,并乘以2再加15,得到均值为15,标准差为2的数据集x

# 使用matplotlib的hist函数绘制x的直方图
plt.hist(x)

# 显示绘制的直方图
plt.show()

#绘图
plt.hist(x)

#显示图表
plt.show()

以上代码的功能是生成一个直方图。首先,设置了数据点的数量为1000个。然后,使用np.random.seed()函数设置了随机数生成器的种子为10021,这样每次运行代码时生成的随机数序列都是一样的,有助于结果的复现。接下来,使用np.random.randn()函数生成N个标准正态分布的随机数,并乘以2再加上15,得到均值为15,标准差为2的数据集x。然后,使用plt.hist()函数绘制x的直方图。最后,调用plt.show()显示绘制的直方图。

5.1.2图像呈现

 

提示:默认分箱bins为10个。

5.2设置直方图bins数

5.2.1绘图代码 

改动之处:bins=40, #设置bins数目为40个

#导入相关库
import numpy as np   #导入numpy库
import matplotlib.pyplot as plt    #导入matplotlib的绘图模块

#准备相关数据
N = 1000
np.random.seed(10021) #设置随机数生成器的种子为10021,这样每次运行代码时,生成的随机数序列都是一样的,便于复现结果。
x = np.random.randn(N) * 2 + 15 #使用numpy的random.randn函数生成N个标准正态分布(均值为0,标准差为1)的随机数,并乘以2再加15,得到均值为15,标准差为2的数据集x
plt.figure(dpi=120)
# 使用matplotlib的hist函数绘制x的直方图
plt.hist(
x,
bins=40, #设置bins数目为40个
label=r'μ = 15, σ = 2' #添加图例
)

plt.legend()#显示图例

# 显示绘制的直方图
plt.show()

以上代码的功能是生成一个带有图例的直方图。首先,设置了数据点的数量为1000个。然后,使用np.random.seed()函数设置了随机数生成器的种子为10021,这样每次运行代码时生成的随机数序列都是一样的,有助于结果的复现。接下来,使用np.random.randn()函数生成N个标准正态分布的随机数,并乘以2再加上15,得到均值为15,标准差为2的数据集x。然后,创建一个新的图表对象,并设置dpi为120。使用plt.hist()函数绘制x的直方图,在参数中指定了bins数目为40个,并添加了图例标签r'μ = 15, σ = 2'。最后,调用plt.legend()函数显示图例,并调用plt.show()显示绘制的直方图。

 5.2.2图像呈现

5.3设置直方图配色、轴范围 

下面对直方图配色和横轴显示范围进行修改:

5.3.1绘图代码 

改动之处:range=(12,18),#设置横轴显示范围
                  color='orange',#修改配色

#导入相关库
import numpy as np   #导入numpy库
import matplotlib.pyplot as plt    #导入matplotlib的绘图模块

#准备相关数据
N = 1000
np.random.seed(10021) #设置随机数生成器的种子为10021,这样每次运行代码时,生成的随机数序列都是一样的,便于复现结果。
x = np.random.randn(N) * 2 + 15 #使用numpy的random.randn函数生成N个标准正态分布(均值为0,标准差为1)的随机数,并乘以2再加15,得到均值为15,标准差为2的数据集x
plt.figure(dpi=120)
# 使用matplotlib的hist函数绘制x的直方图
plt.hist(
    x,
    bins=40, #设置bins数目为40个
    range=(12,18),#设置横轴显示范围
    color='orange',#修改配色
    label=r'μ = 15, σ = 2' #添加图例
    )

#显示图例
plt.legend()

#显示图表
plt.show()

这段代码的功能是生成一个带有图例的直方图,并对绘图进行了一些修改。首先,设置了数据点的数量为1000个。然后,使用np.random.seed()函数设置了随机数生成器的种子为10021,这样每次运行代码时生成的随机数序列都是一样的,有助于结果的复现。接下来,使用np.random.randn()函数生成N个标准正态分布的随机数,并乘以2再加上15,得到均值为15,标准差为2的数据集x。然后,创建一个新的图表对象,并设置dpi为120。使用plt.hist()函数绘制x的直方图,在参数中指定了bins数目为40个,横轴显示范围为12到18,配色为橙色,并添加了图例标签r'μ = 15, σ = 2'。最后,调用plt.legend()函数显示图例,并调用plt.show()显示绘制的直方图。

5.3.2图像呈现 

5.4绘制水平直方图 

5.4.1绘图代码

改动之处:  orientation='horizontal', #水平方向直方图

#导入相关库
import numpy as np   #导入numpy库
import matplotlib.pyplot as plt    #导入matplotlib的绘图模块

#准备相关数据
N = 1000
np.random.seed(10021) #设置随机数生成器的种子为10021,这样每次运行代码时,生成的随机数序列都是一样的,便于复现结果。
x = np.random.randn(N) * 2 + 15 #使用numpy的random.randn函数生成N个标准正态分布(均值为0,标准差为1)的随机数,并乘以2再加15,得到均值为15,标准差为2的数据集x
plt.figure(dpi=120)
# 使用matplotlib的hist函数绘制x的直方图
plt.hist(
    x,
    bins=25, #设置bins数目为25个
    range=(12,18),#设置横轴显示范围
    color='pink',#修改配色
    orientation='horizontal', #水平方向直方图
    label=r'μ = 15, σ = 2' #添加图例
    )

#显示图例
plt.legend()

#显示图表
plt.show()

这段代码的功能是生成一个带有图例的水平方向直方图,并对绘图进行了一些修改。首先,设置了数据点的数量为1000个。然后,使用np.random.seed()函数设置了随机数生成器的种子为10021,这样每次运行代码时生成的随机数序列都是一样的,有助于结果的复现。接下来,使用np.random.randn()函数生成N个标准正态分布的随机数,并乘以2再加上15,得到均值为15,标准差为2的数据集x。然后,创建一个新的图表对象,并设置dpi为120。使用plt.hist()函数绘制x的直方图,在参数中指定了bins数目为25个,横轴显示范围为12到18,配色为粉色,且为水平方向直方图,并添加了图例标签r'μ = 15, σ = 2'。最后,调用plt.legend()函数显示图例,并调用plt.show()显示绘制的直方图。

5.4.2图像呈现

5.5给直方图bins添加边界线

 5.5.1绘图代码

改动之处:edgecolor='k', #bins边界上色

#导入相关库
import numpy as np   #导入numpy库
import matplotlib.pyplot as plt    #导入matplotlib的绘图模块

#准备相关数据
N = 1000
np.random.seed(10021) #设置随机数生成器的种子为10021,这样每次运行代码时,生成的随机数序列都是一样的,便于复现结果。
x = np.random.randn(N) * 2 + 15 #使用numpy的random.randn函数生成N个标准正态分布(均值为0,标准差为1)的随机数,并乘以2再加15,得到均值为15,标准差为2的数据集x
plt.figure(dpi=120)
# 使用matplotlib的hist函数绘制x的直方图
plt.hist(
    x,
    bins=25, #设置bins数目为25个
    range=(12,18),#设置横轴显示范围
    color='royalblue',#修改配色
    orientation='horizontal', #水平方向直方图
    edgecolor='k', #bins边界上色
    label=r'μ = 15, σ = 2' #添加图例
    )

#显示图例
plt.legend()

#显示图表
plt.show()

这段代码的功能是生成一个带有图例的水平方向直方图,并对绘图进行了一些修改。首先,设置了数据点的数量为1000个。然后,使用np.random.seed()函数设置了随机数生成器的种子为10021,这样每次运行代码时生成的随机数序列都是一样的,有助于结果的复现。接下来,使用np.random.randn()函数生成N个标准正态分布的随机数,并乘以2再加上15,得到均值为15,标准差为2的数据集x。然后,创建一个新的图表对象,并设置dpi为120。使用plt.hist()函数绘制x的直方图,在参数中指定了bins数目为25个,横轴显示范围为12到18,配色为皇家蓝,且为水平方向直方图,并添加了图例标签r'μ = 15, σ = 2'。通过设置edgecolor='k',可以将bins的边界颜色设置为黑色。最后,调用plt.legend()函数显示图例,并调用plt.show()显示绘制的直方图。

5.5.2图像呈现 

5.6绘制多组直方图

5.6.1绘图代码

#导入相关库
import numpy as np   #导入numpy库
import matplotlib.pyplot as plt    #导入matplotlib的绘图模块

#准备相关数据
N = 1000

mu1 = 5
mu2 = 10
mu3 = 15

sigma1 = 5
sigma2 = 3
sigma3 = 2

x1 = np.random.randn(N) * sigma1 + mu1
x2 = np.random.randn(N) * sigma2 + mu2
x3 = np.random.randn(N) * sigma3 + mu3

plt.figure(dpi=120)
# 使用matplotlib的hist函数绘制x的直方图
plt.hist(
x1, #变量1
bins=30,
color='royalblue',
label=r'$\mu = $ ' + str(mu1) + ', $\\sigma = $ ' + str(sigma1))
plt.hist(
x2, #变量2
bins=30,
color='tomato',
label=r'$\mu = $ ' + str(mu2) + ',$\\sigma = $ ' + str(sigma2))
plt.hist(
x3, #变量3
bins=30,
color='gray',
label=r'$\mu = $ ' + str(mu3) + ', $\\sigma = $ ' + str(sigma3))

#显示图例
plt.legend()

#显示图表
plt.show()

这段代码的功能是生成三个具有不同均值和标准差的变量的直方图,并添加了相应的图例。首先,设置了数据点的数量为1000个。然后,分别定义了三个变量的均值和标准差。接下来,使用np.random.randn()函数生成N个标准正态分布的随机数,并乘以相应的标准差再加上均值,得到三个具有不同均值和标准差的数据集x1、x2和x3。然后,创建一个新的图表对象,并设置dpi为120。使用plt.hist()函数绘制x1、x2和x3的直方图,分别指定了bins数目为30个,同时,为了区分不同的变量,给每个直方图设置了不同的配色。通过使用LaTeX格式化字符串,在图例标签中显示了每个变量的均值和标准差。

最后,调用plt.legend()函数显示图例,并调用plt.show()显示绘制的直方图。

5.6.2图像呈现

5.7 修改直方图箱子透明度

5.7.1绘图代码

改动地方:alpha=.7 #透明度通过alpha设置

#导入相关库
import numpy as np   #导入numpy库
import matplotlib.pyplot as plt    #导入matplotlib的绘图模块

#准备相关数据
N = 1000

mu1 = 5
mu2 = 10
mu3 = 15

sigma1 = 5
sigma2 = 3
sigma3 = 2

x1 = np.random.randn(N) * sigma1 + mu1
x2 = np.random.randn(N) * sigma2 + mu2
x3 = np.random.randn(N) * sigma3 + mu3

plt.figure(dpi=120)
# 使用matplotlib的hist函数绘制x的直方图
plt.hist(
x1, #变量1
bins=30,
color='royalblue',
label=r'$\mu = $ ' + str(mu1) + ', $\\sigma = $ ' + str(sigma1),
alpha=.7 #透明度通过alpha设置
)

plt.hist(
x2, #变量2
bins=30,
color='tomato',
label=r'$\mu = $ ' + str(mu2) + ',$\\sigma = $ ' + str(sigma2),
alpha=.7 #透明度通过alpha设置
)
plt.hist(
x3, #变量3
bins=30,
color='gray',
label=r'$\mu = $ ' + str(mu3) + ', $\\sigma = $ ' + str(sigma3),
alpha=.7 #透明度通过alpha设置
)

#显示图例
plt.legend()

#显示图表
plt.show()

这段代码在原有的基础上添加了alpha参数来设置直方图的透明度。通过alpha=0.7的设置,使得直方图呈现出一定的透明效果,让重叠的区域更加清晰可见。

最后,调用plt.legend()函数显示图例,并调用plt.show()显示绘制的直方图。

 5.7.2图像呈现

5.7.3通过代码循环简化

#导入相关库
import numpy as np   #导入numpy库
import matplotlib.pyplot as plt    #导入matplotlib的绘图模块

#准备相关数据
N = 1000

mu1 = 5
mu2 = 10
mu3 = 15

sigma1 = 5
sigma2 = 3
sigma3 = 2

x1 = np.random.randn(N) * sigma1 + mu1
x2 = np.random.randn(N) * sigma2 + mu2
x3 = np.random.randn(N) * sigma3 + mu3

mu = np.array([mu1, mu2, mu3])
sigma = np.array([sigma1, sigma2, sigma3])
x = np.array([x1, x2, x3])
colors = ['royalblue', 'tomato', 'gray']
plt.figure(dpi=120)

#循环方式绘图
for i in range(len(x)):
    plt.hist(x[i], bins = 30, color = colors[i],label = r'$\mu = $ ' + str(mu[i]) +', $\\sigma = $ ' + str(sigma[i]), alpha = .7)


#显示图例
plt.legend()

#显示图表
plt.show()

 其绘图效果与5.7.2完全相同。

5.8绘制多组直方图

通过循环,我们可以一图绘制更多直方图。

5.8.1绘图代码

#导入相关库
import numpy as np   #导入numpy库
import matplotlib.pyplot as plt    #导入matplotlib的绘图模块

#准备相关数据
N_func = 10 #设置函数数量为10。
N_data = 1000 #设置数据点数量为1000。

np.random.seed(1000) #设置随机种子,保证结果可重现。

mu = np.random.randint(low=-5, high=5, size=N_func) #随机生成N_func个位于-5和5之间的整数均值。
sigma = np.random.randint(low=1, high=5, size=N_func) #随机生成N_func个位于1和5之间的整数标准差。
x = [] #创建一个空列表用于存储数据。
#对每个均值mu[i]和标准差sigma[i]生成N_data个正态分布随机数,并将它们添加到x列表中。
for i in range(len(mu)):
    xi = np.random.randn(N_data) * sigma[i] + mu[i]
    x.append(xi)

colors = ['#00429d', '#7f40a2', '#a653a1', '#c76a9f', '#e4849c', '#d0e848','#b6cf54', '#a9b356', '#b2914b', '#ff0001']

plt.figure(dpi=120) # 创建一个新的图表对象,并设置dpi为120。
# 对于每个均值mu[i],绘制直方图。
for i in range(len(mu)):
    plt.hist(x[i],bins=30,color=colors[i],label=r'$\mu = $ ' + str(mu[i]) + ', $\\sigma = $ ' +str(sigma[i]),alpha=.7)
#绘制直方图,设置颜色、标签和透明度。
plt.legend(bbox_to_anchor=(1.33, 1.03))  #设置图例位置。

#显示图例
plt.legend()

#显示图表
plt.show()

这段代码通过随机生成N_func个位于-5和5之间的整数作为均值mu,以及位于1和5之间的整数作为标准差sigma。然后,对于每个均值mu[i]和标准差sigma[i],生成N_data个正态分布随机数,并将它们添加到x列表中。

接下来,使用不同的颜色来区分不同的直方图,并在图例中显示每个变量的均值和标准差。最后,调用plt.legend()函数显示图例,并调用plt.show()显示绘制的直方图。

5.8.2图像呈现

5.9绘制2D直方图

2D直方图,也称为二维直方图,是一种在二维平面上展示数据分布情况的图表。它将数据按照两个维度进行划分,并统计每个区域内的数据点数量,然后以颜色的深浅或不同来表示数量的多少。

5.9.1 2D直方图的使用场景

  1. 数据分布分析:2D直方图可用于分析两个变量之间的关系以及它们的分布情况。例如,在金融领域,可以使用2D直方图来分析股票价格和成交量之间的关系,帮助投资者了解市场的走势和波动情况。
  2. 图像处理:在图像处理中,2D直方图可用于表示图像的灰度级别和像素数量之间的关系。通过分析图像的2D直方图,可以对图像进行增强、去噪等操作。
  3. 特征提取:在机器学习和数据挖掘中,2D直方图可以作为特征提取的一种手段。通过将数据集映射到2D平面上,并分析数据点在平面上的分布情况,可以提取出数据集的一些统计特征,如中心趋势、离散程度和偏斜程度等。
  4. 可视化复杂数据集:对于包含多个变量的复杂数据集,使用2D直方图可以直观地展示数据在多个维度上的分布情况。这有助于用户更好地理解数据集的整体特征和潜在关系。

5.9.2绘图代码

关键代码:plt.hist2d(x, y) #2D直方图需要传入两个变量

#导入相关库
import numpy as np   #导入numpy库
import matplotlib.pyplot as plt    #导入matplotlib的绘图模块

N = 1_000
np.random.seed(100)
x = np.random.randn(N)
y = np.random.randn(N)
plt.figure(dpi=120) # 创建一个新的图表对象,并设置dpi为120。
plt.hist2d(x, y) #2D直方图需要传入两个变量

#显示图表
plt.show()

这段代码通过使用np.random.randn()函数从标准正态分布生成N个随机数作为x和y的坐标。然后,使用plt.hist2d()函数绘制二维直方图,传入x和y作为参数。最后,调用plt.show()显示绘制的二维直方图。

5.9.3图像呈现

5.10修改2D直方图bins数

5.10.1绘图代码

#导入相关库
import numpy as np   #导入numpy库
import matplotlib.pyplot as plt    #导入matplotlib的绘图模块

N = 1_000
np.random.seed(100)
x = np.random.randn(N)
y = np.random.randn(N)
plt.figure(dpi=120) # 创建一个新的图表对象,并设置dpi为120。
plt.hist2d(x, y, bins=(25, 25)) #2D直方图修改bins也需要传入两个变量

#显示图表
plt.show()

以上代码的功能是生成一个二维直方图。

首先,设置了数据点的数量为1,000个。然后使用np.random.randn()函数生成服从标准正态分布的随机数作为x和y坐标。接下来,创建一个新的图表对象,并设置dpi为120。最后,使用hist2d()函数绘制二维直方图,传入x和y作为数据,并指定了直方图的箱子数量为(25, 25)。最后,调用plt.show()显示图表。 

5.10.2图像呈现

5.11在2D直方图中定义colormap

 5.11.1绘图代码

# 导入相关库
import numpy as np   # 导入numpy库,用于处理数组和数值计算
import matplotlib.pyplot as plt    # 导入matplotlib的绘图模块,用于可视化
import matplotlib.cm as cm   # 导入matplotlib的颜色映射模块,用于处理颜色映射
from matplotlib.colors import ListedColormap, LinearSegmentedColormap   # 导入matplotlib的颜色映射对象

top = plt.get_cmap('Oranges_r', 128)   # 获取'Oranges_r'颜色映射对象,包含128个颜色
bottom = plt.get_cmap('Blues', 128)   # 获取'Blues'颜色映射对象,包含128个颜色

newcolors = np.vstack((top(np.linspace(0, 1, 128)), bottom(np.linspace(0, 1, 128))))  
# 使用np.linspace()函数在0到1之间生成128个等间距的值,并使用top和bottom颜色映射对象将这些值转换为对应的颜色,然后通过np.vstack()函数将两个颜色映射堆叠起来,形成新的颜色映射
orange_blue = ListedColormap(newcolors, name='OrangeBlue')   # 使用ListedColormap类创建自定义的colormap,传入新的颜色映射数组和名称

N = 10_000   # 设置数据点的数量

np.random.seed(100)   # 设置随机数种子,保证每次运行代码时生成的随机数相同
x = np.random.randn(N)   # 使用np.random.randn()函数生成N个服从标准正态分布的随机数作为x坐标
y = np.random.randn(N)   # 使用np.random.randn()函数生成N个服从标准正态分布的随机数作为y坐标

plt.figure(dpi=120)   # 创建一个新的绘图窗口,并设置分辨率为120dpi
plt.hist2d(
    x,
    y,
    bins=(75, 75),
    cmap=orange_blue   # 传入自定义的colormap作为参数
)

cb = plt.colorbar()   # 添加颜色条
cb.set_label('counts each bin', labelpad=10)   # 设置颜色条的标签和标签与颜色条之间的距离

# 显示图表
plt.show()

以上代码的功能是生成一个二维直方图,并使用自定义的colormap进行颜色填充。

通过调用get_cmap()函数获得两个颜色映射对象,然后将它们合并成一个新的颜色映射对象。随机生成一些数据点,并使用hist2d()函数将数据绘制成二维直方图。最后,添加颜色条并显示图表。 

5.11.2图像呈现

5.12 设置2D直方图显示范围内变量

5.12.1绘图代码 

# 导入相关库
import numpy as np   # 导入numpy库,用于处理数组和数值计算
import matplotlib.pyplot as plt    # 导入matplotlib的绘图模块,用于可视化

N = 10_000   # 设置数据点的数量

np.random.seed(100)   # 设置随机数种子,保证每次运行代码时生成的随机数相同
x = np.random.randn(N)   # 使用np.random.randn()函数生成N个服从标准正态分布的随机数作为x坐标
y = np.random.randn(N)   # 使用np.random.randn()函数生成N个服从标准正态分布的随机数作为y坐标

plt.figure(dpi=120)   # 创建一个新的图表对象,并设置dpi为120。

plt.hist2d(x, y, bins=(75, 75), cmap='jet', cmin=5, cmax=25)   # 使用hist2d()函数绘制二维直方图,传入x和y作为数据,bins参数指定了直方图的箱子数量为(75, 75),cmap参数指定了使用'jet'颜色映射,cmin和cmax参数限制了颜色映射的范围。

cb = plt.colorbar()   # 添加颜色条
cb.set_label('counts each bin', labelpad=10)   # 设置颜色条的标签和标签与颜色条之间的距离

# 显示图表
plt.show()

以上代码的功能是生成一个二维直方图,并使用'jet'颜色映射进行颜色填充。

首先,设置了数据点的数量为10,000个。然后使用np.random.randn()函数生成服从标准正态分布的随机数作为x和y坐标。接下来,创建一个新的图表对象,并设置dpi为120。然后,使用hist2d()函数绘制二维直方图,传入x和y作为数据,并指定了直方图的箱子数量为(75, 75)。同时,通过cmap参数指定了使用'jet'颜色映射,并使用cmin和cmax参数限制了颜色映射的范围。接着,添加颜色条并设置标签和标签与颜色条之间的距离。最后,调用plt.show()显示图表。

5.12.2图像呈现 

 

5.13 绘制边界直方图

5.13.1绘图代码

# 导入相关库
import numpy as np   # 导入numpy库,用于处理数组和数值计算
import matplotlib.pyplot as plt    # 导入matplotlib的绘图模块,用于可视化

N = 10_000   # 设置数据点的数量

np.random.seed(100)   # 设置随机数种子,保证每次运行代码时生成的随机数相同
x = np.random.randn(N)   # 使用np.random.randn()函数生成N个服从标准正态分布的随机数作为x坐标
y = np.random.randn(N)   # 使用np.random.randn()函数生成N个服从标准正态分布的随机数作为y坐标

rows = 5   # 定义网格的行数
columns = 5   # 定义网格的列数
grid = plt.GridSpec(rows, columns, wspace=.4, hspace=.4)   # 创建一个网格布局对象,指定行数、列数和水平/垂直间距

plt.figure(dpi=120)   # 创建一个新的图表对象,并设置dpi为120。

plt.subplot(grid[0, 0:-1])   # 在网格的第一行第一列到倒数第2列位置创建一个子图
plt.hist(x, bins=40, color='royalblue', alpha=.6)   # 绘制x的直方图,设置箱子数量为40,颜色为'royalblue',透明度为0.6
plt.annotate('Normal 1', xy=(2, 500), va='center', ha='left')   # 添加一个文本注释,标识为'Normal 1',在坐标(2, 500)处,垂直对齐方式为居中,水平对齐方式为左对齐

plt.subplot(grid[1:rows + 1, 0:-1])   # 在网格的第2行到最后一行、第一列到倒数第2列位置创建一个子图
plt.hist2d(x, y, cmap='Blues', bins=(30, 40))   # 绘制二维直方图,使用'Blues'颜色映射,指定箱子数量为(30, 40)
plt.axis('equal')   # 设置x轴和y轴的刻度比例相等,使图形显示为正圆形

plt.subplot(grid[1:rows + 1, -1])   # 在网格的第2行到最后一行、最后一列位置创建一个子图
plt.hist(y, bins=40, orientation='horizontal', color='royalblue', alpha=.6)   # 绘制y的直方图,设置箱子数量为40,方向为横向,颜色为'royalblue',透明度为0.6
plt.annotate('Normal 2', xy=(500, 2), va='bottom', ha='center', rotation=-90)   # 添加一个文本注释,标识为'Normal 2',在坐标(500, 2)处,垂直对齐方式为底部对齐,水平对齐方式为居中对齐,旋转角度为-90度

# 显示图表
plt.show()

以上代码的功能是生成一个包含多个子图的图表。首先,设置了数据点的数量为10,000个,并使用np.random.randn()函数生成服从标准正态分布的随机数作为x和y坐标。接下来,定义了图表中子图的行数和列数,并创建一个网格布局。然后,创建一个新的图表对象,并设置dpi为120。接着,在不同的子图位置上绘制各种直方图,使用plt.subplot()指定子图的位置,plt.hist()绘制一维直方图,plt.hist2d()绘制二维直方图。同时,使用annotate()添加文本注释来说明每个子图的内容。最后,调用plt.show()显示图表。 

5.13.2图像呈现 

 

  • 20
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Py小趴

整理不易,感谢金主!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值