matplotlib直方图 图例
时间: 2024-09-05 19:03:55 浏览: 57
matplotlib是一个广泛使用的Python数据可视化库,用于创建静态、动态、交互式的数据图形。当你想要展示数据分布情况时,可以使用它的hist()函数创建直方图。直方图是一种将数据分组并显示每组频数的图形,通常通过柱状表示。
创建直方图时,如果你想添加图例(legend),可以在绘图完成后,通过`legend()`方法指定每个柱子代表的类别。例如:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建一些数据
data = np.random.randn(1000)
# 创建直方图
plt.hist(data, bins=10, alpha=0.5) # bins指定了柱子的数量,alpha设置透明度
# 添加图例
labels = ['数据集A', '数据集B'] # 根据需要自定义标签
plt.legend(labels)
# 设置其他标题和轴标签等细节
plt.title('随机数分布')
plt.xlabel('数值')
plt.ylabel('频数')
# 显示图表
plt.show()
```
在这个例子中,`labels`列表对应的是`legend()`中的参数,它告诉matplotlib图例中每个柱子代表哪一类数据。如果你有多个子图并且想在一个图表上添加多个图例,可以先创建一个`Figure`对象,并在每个子图上调用`add_subplot()`和`legend()`。
相关问题
matplotlib 绘制直方图,比较两组数据
下面是一个示例代码,用于比较两组数据的直方图:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成两组随机数据
data1 = np.random.normal(0, 1, 1000)
data2 = np.random.normal(3, 1, 1000)
# 绘制直方图
plt.hist(data1, bins=20, alpha=0.5, label='Data 1')
plt.hist(data2, bins=20, alpha=0.5, label='Data 2')
plt.legend(loc='upper right')
# 设置图表标题和轴标签
plt.title('Comparison of Two Data Sets')
plt.xlabel('Value')
plt.ylabel('Frequency')
# 显示图表
plt.show()
```
在这个例子中,我们使用 `numpy.random.normal()` 函数生成两组具有不同均值和标准差的正态分布随机数据。然后,我们使用 `plt.hist()` 函数绘制两组数据的直方图。我们设置 `bins` 参数为 20,这意味着我们将数据范围分成 20 个区间,并在每个区间内计算频率。我们还设置 `alpha` 参数为 0.5,这意味着我们将直方图的颜色透明度设置为 0.5,以便更好地区分两组数据。最后,我们使用 `plt.legend()` 函数在图表中添加图例,以便区分两组数据。
matplotlib绘制多条直方图
可以使用hist()函数来绘制多条直方图,只需将需要绘制的数据分别传入函数即可。以下是一个例子:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
data1 = np.random.normal(0, 1, 1000)
data2 = np.random.normal(2, 1, 1000)
data3 = np.random.normal(-2, 1, 1000)
# 绘制直方图
plt.hist(data1, bins=20, alpha=0.5, label='data1')
plt.hist(data2, bins=20, alpha=0.5, label='data2')
plt.hist(data3, bins=20, alpha=0.5, label='data3')
# 添加图例
plt.legend()
# 显示图像
plt.show()
```
输出结果如下:
![histogram](https://cdn.jsdelivr.net/gh/Yousazoe/picgo-repo/img/histogram.png)
阅读全文