写论文时需要用matplotlib画一个包含多个实例的折线图,采用这篇博客的方法,但是会有报错(报错内容如标题所示),百度的解决方案都无效

报错的原因个人认为主要有2个:

1. excel表格中的数字没有设置成数值

2. data['sen_len']取出来的并不是列表形式的数据,因此无法作为plt.plot()的参数来使用,所以需要用list转换一下数据格式就可以了

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

datafile = 'F1-sentence-len.xlsx'
data = pd.read_excel(datafile)
# print(data)
# print(list(data['sen_len']))
# print(list(data['Char baseline']))

plt.figure(figsize=(10, 5))
plt.title('F1 value against sentence length on weibo dataset.', fontsize=20)
plt.xlabel('Sentence Length', fontsize=14)
plt.ylabel('F1 value (%)', fontsize=14)

plt.plot(list(data['sen_len']), list(data['Char baseline']), color="pink", linewidth=2, linestyle='--', label='1', marker='o')
plt.plot(list(data['sen_len']), list(data['F-Lattice LSTM']), color="cyan", linewidth=2, linestyle='--', label='2', marker='+')
plt.plot(list(data['sen_len']), list(data['F-LR-CNN']), color="blue", linewidth=2, linestyle='--', label='3', marker='*')
plt.plot(list(data['sen_len']), list(data['F-GIWL']), color="black", linewidth=2, linestyle='--', label='4', marker='^')

# plt.legend(loc=1)
plt.savefig("F1-sentence_len.png")
plt.show()


折线图多样化设置参考博客:

【python】Matplotlib作图常用marker类型、线型和颜色 - 大大西瓜吃不饱 - 博客园 (cnblogs.com)

plt.savefig 保存图片 - 小小喽啰 - 博客园 (cnblogs.com)

解决Python中报错TypeError: must be str, not bytes问题_python_脚本之家 (jb51.net)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐