plt.legend图例分为两行对齐
时间: 2023-08-27 13:09:55 浏览: 256
要将图例分为两行并对齐,您可以使用`ncol`参数来指定图例的列数,然后使用`bbox_to_anchor`参数来调整图例的位置。以下是一种方法:
```python
import matplotlib.pyplot as plt
# 创建示例数据
x = [1, 2, 3]
y1 = [2, 4, 6]
y2 = [1, 3, 5]
# 绘制图形
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
# 设置图例分为两行对齐
plt.legend(ncol=2, bbox_to_anchor=(0.5, -0.1))
# 显示图形
plt.show()
```
在上面的示例中,`ncol=2`将图例分为两列,而`bbox_to_anchor=(0.5, -0.1)`将图例放置在图形底部中央的位置。您可以根据需要调整`bbox_to_anchor`的参数来微调图例的位置。
相关问题
plt.legend的用法
`plt.legend()` 是一个用于在 Matplotlib 中添加图例的函数。它接受一些参数来控制图例的位置、标签和样式等。下面是使用 `plt.legend()` 的一些常见用法:
1. 添加默认的图例:如果你在绘制图形时使用了 `label` 参数指定了每个线条或图形的标签,那么只需要调用 `plt.legend()`,就可以自动添加一个默认的图例,其中包含每个标签对应的线条或图形。
```
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [1, 4, 9, 16, 25]
plt.plot(x, y1, label='linear')
plt.plot(x, y2, label='quadratic')
plt.legend()
plt.show()
```
2. 设置图例的位置:可以使用 `loc` 参数来设置图例的位置。`loc` 参数可以接受一个字符串或一个整数,表示图例的位置。常见的位置有:'best'、'upper right'、'upper left'、'lower left'、'lower right'、'right'、'center left'、'center right'、'lower center'、'upper center'、'center'。
```
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [1, 4, 9, 16, 25]
plt.plot(x, y1, label='linear')
plt.plot(x, y2, label='quadratic')
plt.legend(loc='upper left')
plt.show()
```
3. 设置图例的标题:可以使用 `title` 参数来设置图例的标题。
```
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [1, 4, 9, 16, 25]
plt.plot(x, y1, label='linear')
plt.plot(x, y2, label='quadratic')
plt.legend(title='Legend Title')
plt.show()
```
4. 设置图例的样式:可以使用 `fontsize` 参数来设置图例的字体大小,还可以使用 `frameon` 参数来控制图例是否带有边框。
```
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [1, 4, 9, 16, 25]
plt.plot(x, y1, label='linear')
plt.plot(x, y2, label='quadratic')
plt.legend(fontsize='large', frameon=True)
plt.show()
```
这些只是 `plt.legend()` 的一些常见用法,还有更多的参数可以控制图例的行数、列数、对齐方式等。更多信息可以参考 Matplotlib 官方文档。
import matplotlib.pyplot as plt import numpy as np #设置字体 plt.rcParams['font.sans-serif']=['Microsoft YaHei'] #图表题 plt.title("不同学校专业招生人数分布图") #设置一个长度为5的等差数组 x = np.arange(5) #绘制柱状图 #赋值 y = [400,170,160,90,50] y1 = [300,180,150,70,90] bar_width = 0.5 #设置坐标刻度 tick_label = ["计算机","机械","电子","管理","物理"] #设置并列柱状图 plt.bar(x,y,bar_width,color="r",align="center",label="学校A") plt.bar(x+bar_width,y1,bar_width,color="y",align="center",label="学校B") #设置y轴和x轴 plt.xlabel("专业") plt.ylabel("招生人数") #设置x的刻度以及x的刻度标签 plt.xticks(x+bar_width/2,tick_label) #显示图 plt.legend() plt.show()详细注释
这是一段 Python 代码,用于绘制柱状图。下面是对代码的详细注释:
```python
# 导入需要的库
import matplotlib.pyplot as plt
import numpy as np
# 设置字体
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
# 设置图表标题
plt.title("不同学校专业招生人数分布图")
# 设置一个长度为5的等差数组,作为x轴数据
x = np.arange(5)
# 设置两个学校的招生人数数据
y = [400,170,160,90,50]
y1 = [300,180,150,70,90]
# 设置柱状图的宽度
bar_width = 0.5
# 设置x轴刻度标签
tick_label = ["计算机","机械","电子","管理","物理"]
# 绘制并列柱状图
plt.bar(x, y, bar_width, color="r", align="center", label="学校A")
plt.bar(x + bar_width, y1, bar_width, color="y", align="center", label="学校B")
# 设置y轴和x轴标签
plt.xlabel("专业")
plt.ylabel("招生人数")
# 设置x轴刻度以及x轴刻度标签
plt.xticks(x + bar_width/2, tick_label)
# 显示图例
plt.legend()
# 显示图表
plt.show()
```
该代码实现了以下功能:
1. 导入了 `matplotlib.pyplot` 库和 `numpy` 库。
2. 设置了字体为“Microsoft YaHei”。
3. 设置了柱状图的标题为“不同学校专业招生人数分布图”。
4. 定义了一个长度为5的等差数组 `x`,作为 x 轴的数据。
5. 定义了两个学校的招生人数数据 `y` 和 `y1`。
6. 设置了柱状图的宽度为 `bar_width`。
7. 设置了 x 轴刻度标签为 `tick_label`。
8. 绘制了并列柱状图,其中 `x` 和 `y` 参数表示数据,`bar_width` 表示柱状图的宽度,`color` 表示柱状图的颜色,`align` 表示柱状图的对齐方式,`label` 表示图例标签。
9. 设置了 x 轴和 y 轴的标签。
10. 设置了 x 轴刻度以及刻度标签。
11. 显示图例。
12. 显示图表。
阅读全文