在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_length和petal_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_length和petal_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绘制重叠直方图,如何设置它们的透明度值,以及如何自定义它们的颜色。