plt.bar和plt.plot分别如何修改图例字体的大小
时间: 2024-03-03 12:45:34 浏览: 127
要修改图例字体的大小,可以使用`plt.legend()`函数的`fontsize`参数来实现。具体来说,对于`plt.bar`和`plt.plot`,可以按照以下方式进行修改:
对于plt.bar:
```python
import matplotlib.pyplot as plt
# 创建柱状图
plt.bar(x, y)
# 修改图例字体大小
plt.legend(fontsize=12)
# 显示图形
plt.show()
```
对于plt.plot:
```python
import matplotlib.pyplot as plt
# 创建折线图
plt.plot(x, y)
# 修改图例字体大小
plt.legend(fontsize=12)
# 显示图形
plt.show()
```
在上述代码中,`fontsize`参数用于设置图例字体的大小,可以根据需要自行调整数值。通过这种方式,你可以轻松地修改图例字体的大小。
相关问题
改进代码import matplotlib.pyplot as plt import numpy as np data1 =[27540, 29975]# 数据 data2 = [32189, 35128] x = ['2020年', '2021年'] y1 = [4.7,9.1] y2 = [3.8,8.8] plt.bar(x-0.2, data1, width=0.4, label='data1', color='blue')# 绘制双柱状图 plt.bar(x+0.2, data2, width=0.4, label='data2', color='green') ax = plt.gca().twinx() ax.plot(x, y1, label='y1', color='red')# 绘制双折线图 ax.plot(x, y2, label='y2', color='orange') plt.legend(loc='upper left')# 设置图例 ax.legend(loc='upper right') plt.title('Double Bar and Line Chart')# 设置标题和坐标轴标签 plt.xlabel('X') plt.ylabel('Y') plt.show()
这段代码没有问题,但是可以进行一些改进。首先,可以使用 numpy.arange() 函数生成横坐标 x,这样可以更加灵活地指定横坐标的范围和步长。其次,可以使用 plt.subplots() 函数创建一个 Figure 对象和一个 Axes 对象,这样可以更加方便地控制图表的大小和布局。最后,可以使用 plt.tight_layout() 函数调整图表的边距,使得图表更加美观。改进后的代码如下:
```
import matplotlib.pyplot as plt
import numpy as np
data1 = [27540, 29975] # 数据
data2 = [32189, 35128]
y1 = [4.7, 9.1] # 折线图的纵坐标
y2 = [3.8, 8.8]
x = np.arange(len(data1)) # 横坐标
fig, ax = plt.subplots(figsize=(8, 6)) # 创建Figure对象和Axes对象
ax.bar(x - 0.2, data1, width=0.4, label='data1', color='blue') # 绘制双柱状图
ax.bar(x + 0.2, data2, width=0.4, label='data2', color='green')
ax.set_xticks(x) # 设置横坐标刻度
ax.set_xticklabels(['2020年', '2021年']) # 设置横坐标刻度标签
ax2 = ax.twinx() # 创建共享横坐标的纵坐标轴
ax2.plot(x, y1, label='y1', color='red') # 绘制双折线图
ax2.plot(x, y2, label='y2', color='orange')
ax.legend(loc='upper left') # 设置图例
ax2.legend(loc='upper right')
ax.set_title('Double Bar and Line Chart') # 设置标题和坐标轴标签
ax.set_xlabel('X')
ax.set_ylabel('Bar Chart Y')
ax2.set_ylabel('Line Chart Y')
plt.tight_layout() # 调整图表边距
plt.show()
```
改进后的代码可以更加方便地控制图表的大小和布局,并且可以更加清晰地表达数据和图表的意义。
代码优化import matplotlib.pyplot as plt fig = plt.figure(1,(8,4),dpi = 250) ax = plt.subplot(111) plt.sca(ax) #折线图调整颜色加上数据点 plt.plot(hourcount['Stime'],hourcount['VehicleNum'],'k-',hourcount['Stime'],hourcount['VehicleNum'],'k.') #加上条形图 plt.bar(hourcount['Stime'],hourcount['VehicleNum'],width =0.5) plt.title('Hourly data Volume') #把y轴起点固定在0 plt.ylim(0,80000) plt.ylabel('Data volumn') plt.xlabel('Hour') plt.show()
这段代码的功能是绘制一个包含折线图和条形图的图表,展示每小时的数据量。以下是一些代码优化的建议:
1. 将导入的模块放在代码的最开始部分,避免在代码的中间导入模块。这样可以让代码更易读,同时也可以提高代码的执行效率。
2. 将常用的参数值保存在变量中,以便多次使用。例如,可以将图表的大小和分辨率保存在变量中,然后在创建图表时使用这些变量。
3. 可以使用更具描述性的变量名,以便更容易理解代码的功能。例如,可以将 'Stime' 改为 'hour',将 'VehicleNum' 改为 'data_volume'。
4. 可以使用子图(subplots)的方式创建图表,这样可以更方便地控制图表的布局。
5. 可以使用更简洁的语法来绘制折线图和条形图。例如,可以使用 plt.plot() 和 plt.bar() 方法的多个参数来同时设置颜色、线型和数据点的样式。
6. 最后,可以添加注释或文档字符串来解释代码的功能和参数,以便更易读和维护。
下面是优化后的代码示例:
```
import matplotlib.pyplot as plt
# 设置常用参数
figsize = (8, 4)
dpi = 250
ylim = (0, 80000)
xlabel = 'Hour'
ylabel = 'Data volume'
def plot_hourly_data(hour, data_volume):
# 创建图表和子图
fig, ax = plt.subplots(figsize=figsize, dpi=dpi)
# 绘制折线图和数据点
ax.plot(hour, data_volume, 'k-o', label='Data volume')
# 绘制条形图
ax.bar(hour, data_volume, width=0.5, color='gray', alpha=0.3, label='Data volume')
# 设置标题和坐标轴标签
ax.set_title('Hourly data volume')
ax.set_xlabel(xlabel)
ax.set_ylabel(ylabel)
# 设置y轴起点为0
ax.set_ylim(ylim)
# 显示图例和图表
ax.legend()
plt.show()
# 调用函数绘制图表
plot_hourly_data(hour=hourcount['Stime'], data_volume=hourcount['VehicleNum'])
```
阅读全文