📜  在Python中使用 Matplotlib 重叠直方图

📅  最后修改于: 2022-05-13 01:55:39.108000             🧑  作者: Mango

在Python中使用 Matplotlib 重叠直方图

直方图是一种可视化数据的方式。在这里,我们将学习如何使用Matplotlib库在Python中绘制重叠直方图。 matplotlib.pyplot.hist()用于制作直方图。

让我们使用iris数据集并使用Matplotlib绘制各种重叠的直方图。

第 1 步:导入库

Python3
# importing libraries
import matplotlib.pyplot as plt
import seaborn as sns


Python3
# load the iris dataset
data = sns.load_dataset('iris')
  
# view the dataset
print(data.head(5))


Python3
# plotting histograms
plt.hist(data['petal_length'], 
         label='petal_length')
  
plt.hist(data['sepal_length'], 
         label='sepal_length')
  
plt.legend(loc='upper right')
plt.title('Overlapping')
plt.show()


Python3
plt.hist(data['petal_length'], 
         alpha=0.5, # the transaparency parameter
         label='petal_length')
  
plt.hist(data['sepal_length'],
         alpha=0.5,
         label='sepal_length')
  
plt.legend(loc='upper right')
plt.title('Overlapping with both alpha=0.5')
plt.show()


Python3
plt.hist(data['petal_length'], 
         alpha=0.9,
         label='petal_length')
  
plt.hist(data['sepal_length'],
         alpha=0.1,
         label='sepal_length')
  
plt.legend(loc='upper right')
plt.title('Overlapping with alpha=0.1 and 0.9 for sepal and petal')
plt.show()


Python3
# plotting more than 2 overlapping histograms
plt.hist(data['sepal_width'], 
         alpha=0.5, 
         label='sepal_width',
         color='red') # customized color parameter
  
plt.hist(data['petal_width'], 
         alpha=0.5,
         label='petal_width',
         color='green')
  
plt.hist(data['petal_length'], 
         alpha=0.5,
         label='petal_length',
         color='yellow')
  
plt.hist(data['sepal_length'], 
         alpha=0.5,
         label='sepal_length',
         color='purple')
  
plt.legend(loc='upper right')
plt.show()


第 2 步:加载数据集

蟒蛇3

# load the iris dataset
data = sns.load_dataset('iris')
  
# view the dataset
print(data.head(5))

第 3 步:让我们绘制sepal_lengthpetal_length的直方图

蟒蛇3

# plotting histograms
plt.hist(data['petal_length'], 
         label='petal_length')
  
plt.hist(data['sepal_length'], 
         label='sepal_length')
  
plt.legend(loc='upper right')
plt.title('Overlapping')
plt.show()

在这里,我们可以看到“petal_length”直方图的某些部分隐藏在“sepal_length”直方图后面。为了正确地可视化两个直方图,我们需要将透明度参数alpha设置为合适的值。因此,让我们检查 alpha 的各种值并找出合适的值。

第 4 步:sepal_lengthpetal_length设置alpha=0.5

蟒蛇3

plt.hist(data['petal_length'], 
         alpha=0.5, # the transaparency parameter
         label='petal_length')
  
plt.hist(data['sepal_length'],
         alpha=0.5,
         label='sepal_length')
  
plt.legend(loc='upper right')
plt.title('Overlapping with both alpha=0.5')
plt.show()

步骤 5:为 sepal_length 设置alpha =0.1 ,为petal_length设置0.9

蟒蛇3

plt.hist(data['petal_length'], 
         alpha=0.9,
         label='petal_length')
  
plt.hist(data['sepal_length'],
         alpha=0.1,
         label='sepal_length')
  
plt.legend(loc='upper right')
plt.title('Overlapping with alpha=0.1 and 0.9 for sepal and petal')
plt.show()

通过以上两个步骤,我们可以推断出,为了更好地可视化两个直方图, alpha=0.5将是透明度参数的最合适选项。

现在,要在需要自定义颜色的地方绘制两个以上重叠的直方图,让我们按照步骤 6 进行操作。

第 6 步:创建 2 个以上具有自定义颜色的重叠直方图。

蟒蛇3

# plotting more than 2 overlapping histograms
plt.hist(data['sepal_width'], 
         alpha=0.5, 
         label='sepal_width',
         color='red') # customized color parameter
  
plt.hist(data['petal_width'], 
         alpha=0.5,
         label='petal_width',
         color='green')
  
plt.hist(data['petal_length'], 
         alpha=0.5,
         label='petal_length',
         color='yellow')
  
plt.hist(data['sepal_length'], 
         alpha=0.5,
         label='sepal_length',
         color='purple')
  
plt.legend(loc='upper right')
plt.show()

因此,在本文中,我们学习了如何使用Matplotlib绘制重叠直方图,如何设置它们的透明度值,以及如何自定义它们的颜色。