plt.legend 大小
时间: 2023-09-26 12:10:49 浏览: 100
您可以使用`plt.legend`函数的`fontsize`参数来设置图例的大小。例如,您可以将其设置为12,如下所示:
```python
import matplotlib.pyplot as plt
# 绘制图形
plt.legend(fontsize=12)
```
您可以根据需要调整`fontsize`的值以获得所需的大小。
相关问题
plt.figure(figsize= (10, 4)) plt.subplot(121) plt.plot(range(n_epoch), cbow_losses, 'r-o', label = 'CBOW Losses') plt.legend() plt.subplot(122) plt.plot(range(n_epoch), sg_losses, 'g-s', label = 'SkipGram Losses') plt.legend() plt.tight_layout()这段代码什么意思
这段代码的作用是绘制模型训练过程中的损失值曲线图,其中:
- `plt.figure(figsize= (10, 4))`:创建一个大小为(10, 4)的Matplotlib图形对象。
- `plt.subplot(121)`:创建一个大小为1x2的子图,并将当前子图设置为第1个子图。
- `plt.plot(range(n_epoch), cbow_losses, 'r-o', label = 'CBOW Losses')`:在当前子图中绘制CBOW算法的损失值曲线,并用红色圆点表示。其中`range(n_epoch)`表示x轴范围为0到n_epoch-1,`cbow_losses`表示y轴上的损失值。
- `plt.legend()`:添加图例到当前子图中。
- `plt.subplot(122)`:将当前子图设置为第2个子图。
- `plt.plot(range(n_epoch), sg_losses, 'g-s', label = 'SkipGram Losses')`:在当前子图中绘制Skip-gram算法的损失值曲线,并用绿色正方形表示。其中`range(n_epoch)`表示x轴范围为0到n_epoch-1,`sg_losses`表示y轴上的损失值。
- `plt.legend()`:添加图例到当前子图中。
- `plt.tight_layout()`:调整子图布局,使其紧凑显示。
绘制损失值曲线图可以帮助我们了解模型训练过程中的性能表现,以及在何时停止训练模型。
# 绘制损失函数曲线 plt.plot(train_losses, label='Train Loss') plt.plot(test_losses, label='Test Loss') plt.ylim([0, 1]) # 设置y轴范围为0~1 plt.legend() plt.show() # 绘制准确率曲线 plt.plot(train_accs, label='Train Acc') plt.plot(test_accs, label='Test Acc') plt.ylim([0, 1]) # 设置y轴范围为0~1 plt.legend() plt.show() 使曲线平滑
为了使曲线平滑,可以使用`plot()`函数的`smooth`参数,它可以控制曲线的平滑程度。可以将`smooth`参数设置为一个大于0的整数,代表对曲线进行平均滤波的窗口大小。较大的窗口大小会导致曲线更平滑,但可能会使曲线更加模糊。
以下是修改后的代码,将`plot()`函数的`smooth`参数设置为10:
``` python
import matplotlib.pyplot as plt
train_losses, train_accs, test_losses, test_accs = [], [], [], []
for epoch in range(100):
train_loss, train_acc = train(model, train_loader, criterion, optimizer)
test_loss, test_acc = test(model, test_loader, criterion)
train_losses.append(train_loss)
train_accs.append(train_acc)
test_losses.append(test_loss)
test_accs.append(test_acc)
print('Epoch: {} Train Loss: {:.4f} Train Acc: {:.4f} Test Loss: {:.4f} Test Acc: {:.4f}'.format(
epoch, train_loss, train_acc, test_loss, test_acc))
# 绘制损失函数曲线
plt.plot(train_losses, label='Train Loss', smooth=10)
plt.plot(test_losses, label='Test Loss', smooth=10)
plt.ylim([0, 1]) # 设置y轴范围为0~1
plt.legend()
plt.show()
# 绘制准确率曲线
plt.plot(train_accs, label='Train Acc', smooth=10)
plt.plot(test_accs, label='Test Acc', smooth=10)
plt.ylim([0, 1]) # 设置y轴范围为0~1
plt.legend()
plt.show()
```
这里将`plot()`函数的`smooth`参数设置为10,来对损失函数和准确率的曲线进行平滑处理。根据实际情况,可以适当调整`smooth`参数的大小,以得到更好的平滑效果。
阅读全文