plt.legend设置图例位置在画布下面
时间: 2023-12-04 15:03:22 浏览: 73
您可以使用`plt.legend()`函数的`loc`参数来设置图例的位置。要将图例放置在画布下方,可以将`loc`参数设置为`'lower center'`。例如:
```python
import matplotlib.pyplot as plt
# 绘制图形
plt.plot([1, 2, 3], [4, 5, 6], label='线条1')
plt.plot([1, 2, 3], [7, 8, 9], label='线条2')
# 设置图例位置
plt.legend(loc='lower center')
# 显示图形
plt.show()
```
这样,图例将显示在画布的下方中央位置。您还可以使用其他位置参数,如`'lower left'`、`'lower right'`等来调整图例的位置。
相关问题
import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.family'] = 'SimHei' # 设置中文字体为黑体 plt.rcParams['axes.unicode_minus']=False # 设置负号显示正常 x = np.arange(-2.0, 2.1, 0.1) y = x ** 2 z = x ** 3 fig = plt.figure(1) #创建画布 plt.plot(x, y, "r") #根据x和y值绘制红色曲线 _____________ (x, z, "g*:") #根据x和z值绘制带绿色星号的虚线 plt.axis('scaled') #设置x轴y轴按实际比例显示 plt.title("二次及三次函数") #设置标题 plt.xlabel("x轴坐标") #设置x轴的名称 _____________ ("y轴坐标") #设置y轴的名称 plt.xlim(-2, 2) #设置x轴的范围 _____________ (-4, 4) #设置y轴的范围 plt.xticks([-2, -1, 0, 1, 2]) #设置x轴刻度 plt.legend(labels=['y=x^2', 'y=x^3']) #设置图例 _____________ #显示图形 fig.savefig('myfig1.png') #保存图片文件
这是一段使用Matplotlib库绘制二次及三次函数图像的代码,下划线处需要填上相应的代码:
```python
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.family'] = 'SimHei' # 设置中文字体为黑体
plt.rcParams['axes.unicode_minus']=False # 设置负号显示正常
x = np.arange(-2.0, 2.1, 0.1)
y = x ** 2
z = x ** 3
fig = plt.figure(1) #创建画布
plt.plot(x, y, "r") #根据x和y值绘制红色曲线
plt.plot(x, z, "g*:") #根据x和z值绘制带绿色星号的虚线
plt.axis('scaled') #设置x轴y轴按实际比例显示
plt.title("二次及三次函数") #设置标题
plt.xlabel("x轴坐标") #设置x轴的名称
plt.ylabel("y轴坐标") #设置y轴的名称
plt.xlim(-2, 2) #设置x轴的范围
plt.ylim(-4, 4) #设置y轴的范围
plt.xticks([-2, -1, 0, 1, 2]) #设置x轴刻度
plt.legend(labels=['y=x^2', 'y=x^3']) #设置图例
plt.show() #显示图形
fig.savefig('myfig1.png') #保存图片文件
```
这段代码首先导入了Matplotlib库和Numpy库,然后设置了中文字体和负号的显示方式。接着,通过Numpy库的`arange`函数生成了一组x值,并分别计算了二次函数和三次函数的y值。然后,创建了一个画布,并分别绘制了二次函数和三次函数的图像。接着,设置了坐标轴的名称、范围、刻度和图例,并将图像显示出来。最后,将图像保存至文件。
p=plt.figure(figsize=(12,6),dpi=1080) n1=total_data[:10] x=n1['名称'].values y1=n1['男厕位'].values y2=n1['女厕位'].values y3=n1['第三卫生间'].values y_1=y1 y_2=y2 y_3=y3 plt.plot(x, y_1, color='orangered', marker='o', linestyle='-', label='男厕位') plt.plot(x, y_2, color='blueviolet', marker='D', linestyle='-.', label='女厕位') plt.plot(x, y_3, color='green', marker='*', linestyle=':', label='第三卫生间') plt.legend() # 显示图例 plt.xticks(x, rotation=45) plt.ylim(0,14) plt.xlabel("名称") # X轴标签 plt.ylabel("数量") # Y轴标签 plt.show()
这段代码主要是用来绘制各地区公共厕所男女厕位和第三卫生间数量的折线图。以下是一些可以进行优化的建议:
1. 将代码分成多行,使其更易读。例如,将 `x`、`y1`、`y2`、`y3` 的定义放在第一行后面。
2. 使用 `f-string` 来格式化字符串,可以让代码更简洁。例如,将 `plt.xlabel("名称")` 改为 `plt.xlabel(f"名称")`。
3. 使用 `ax` 对象来绘制图像。这样可以更好地控制图像的各个元素,并且可以更加方便地对图像进行优化。
4. 可以使用 `plt.subplots()` 函数来创建画布和子图,这样可以更加方便地控制画布大小和子图数量。
5. 将 `dpi` 的值调整为更合适的值,使图像在不同设备上显示效果更好。可以根据实际情况进行调整。
下面是优化后的代码:
```python
import matplotlib.pyplot as plt
# 数据
n1 = total_data[:10]
x = n1['名称'].values
y1 = n1['男厕位'].values
y2 = n1['女厕位'].values
y3 = n1['第三卫生间'].values
# 绘图
fig, ax = plt.subplots(figsize=(12, 6), dpi=150)
# 绘制折线图
ax.plot(x, y1, color='orangered', marker='o', linestyle='-', label='男厕位')
ax.plot(x, y2, color='blueviolet', marker='D', linestyle='-.', label='女厕位')
ax.plot(x, y3, color='green', marker='*', linestyle=':', label='第三卫生间')
# 添加图例
ax.legend()
# 设置X轴标签、Y轴标签、标题、刻度、范围
ax.set_xlabel(f"名称")
ax.set_ylabel("数量")
ax.set_title(f"各地区公共厕所男女厕位和第三卫生间数量折线图")
ax.set_xticks(x)
ax.set_xticklabels(x, rotation=45)
ax.set_ylim(0, 14)
# 显示图像
plt.show()
```
这样,代码更加清晰易读,并且具有更好的可维护性。