我正在尝试绘制列表中收集的信息。这只是聊天记录中用户每天发送多少消息的统计信息。我在将日期从数据传输到绘图的X轴时遇到问题。它一直显示为正常数字。
list_of_records = [record1, record2, record3, ...]
其中:
record = ['name', messages number, day, month, year]
真实数据示例:
list_of_records = [['F', 2, 23, 9, 2018], ['A', 1, 23, 9, 2018], ['F', 2, 3, 7, 2018],
['A', 2, 3, 7, 2018], ['A', 2, 3, 7, 2018], ['F', 2, 3, 7, 2018], ['F', 2, 3, 7, 2018]
现在我正在查看:link1,link1,link1,link1
但是,这对我来说并没有多大意义,因为他们总是从某个地方导入数据。
我猜想我必须从matplotlib导入某种类型的lib才能将要从数组中提取的数字转换为日期的绘图友好格式。然后使用其他子库将其与日期一起绘制。但是怎么做呢?我没有线索。
这是我第一次使用matplot lib,所以请不要过于笼统地回答。
我的代码:
from matplotlib import pyplot as plt
list = [['F', 2, 23, 9, 2018], ['A', 1, 23, 9, 2018], ['F', 2, 3, 7, 2018], ['A', 2, 3, 7, 2018], ['A', 2, 3, 7, 2018], ['F', 2, 3, 7, 2018], ['F', 2, 3, 7, 2018], ['F', 2, 3, 7, 2018], ['A', 2, 3, 7, 2018], ['F', 2, 3, 7, 2018], ['A', 2, 3, 7, 2018], ['F', 2, 3, 7, 2018]]
plot_x_A = []
plot_y_A = []
plot_x_F = []
plot_y_F = []
for value in list:
if value[0] == "F":
plot_x_F.append((value[-1],value[-2],value[-3]))
#X value - take year, month and day and pack in in tuple
plot_y_F.append(value[1])
#Y value - just number
if value[0] == "A":
plot_x_A.append((value[-1],value[-2],value[-3]))
plot_y_A.append(value[1])
#print(plot_x_A) #double check myself if it looks all right
#print(plot_y_A)
plt.plot_date(plot_x_A,plot_y_A,xdate=True)
plt.show()