写论文时需要用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)