Python 带matplotlib的多线图
让我们假设:Python 带matplotlib的多线图,python,matplotlib,graph,Python,Matplotlib,Graph,让我们假设: A=[[1,4,2],[2,3,5],[2,4,5]…(此列表中有φ列表) B=[date1,date2,date3,…](日期) 基本上,A[I]对应于B[I]中的日期,A的内部有一个列表,其中列出了该日期B[I]的product1、product2、product3的价格 我想做一个以日期为X轴,以价格为Y轴的多线图。因此,每个日期将有3个点(产品价格1,产品价格2,产品价格3) 还有一个问题,在A的一些列表中,“内部”列表不包含3种产品,只有2种。因为另一个没有注册 例如:A
A=[[1,4,2],[2,3,5],[2,4,5]…
(此列表中有φ列表)
B=[date1,date2,date3,…]
(日期)
基本上,A[I]
对应于B[I]
中的日期,A
的内部有一个列表,其中列出了该日期B[I]
的product1、product2、product3
的价格
我想做一个以日期为X轴,以价格为Y轴的多线图。因此,每个日期将有3个点(产品价格1,产品价格2,产品价格3)
还有一个问题,在A
的一些列表中,“内部”列表不包含3种产品,只有2种。因为另一个没有注册
例如:A=[[1,4,2],[2,7],[2,4,5]]
我该怎么做多线图呢?让我开始指出,这不是存储数据的好方法。 如果其中一个价格没有登记,就不可能知道是哪一个,这就使得整个条目无法使用。最好使用像
None
这样的占位符来记住未测量的值。例如:
[5, 6, None] --> The entry for the third product is missing
[5, None, 5] --> The entry for the second product is missing
[None, 3, 5] --> The entry for the first product is missing
这就是说,我将分享一个方法,该方法假定它始终是丢失的最后一个产品。通过使用占位符重新记录您的数据,它将为您提供正确的结果
import matplotlib.pyplot as plt
import numpy as np
total_dates = 10
# create dummy list
A = []
for a in range(total_dates):
A.append([np.random.randint(10) for a in range(np.random.randint(2,4))])
# create dummy dates with same length
B = range(total_dates)
# make all inside lists the same length
for sublist in A:
while len(sublist) < 3:
sublist += [None]
# plot as lineplot
for prices in list(zip(*A)):
plt.plot(B, A)
plt.show()
导入matplotlib.pyplot作为plt
将numpy作为np导入
总日期=10天
#创建虚拟列表
A=[]
对于范围内的日期(总日期):
A.append([np.random.randint(10)表示范围内的(np.random.randint(2,4)))
#创建具有相同长度的虚拟日期
B=范围(总日期)
#使所有内部列表长度相同
对于A中的子列表:
而len(子列表)<3:
子列表+=[无]
#以线图的形式打印
对于清单(zip(*A))中的价格:
地块(B、A)
plt.show()
当只有两种价格时,丢失的总是同一种产品吗?哪种价格没有登记?是产品1、产品2还是产品3?你怎么知道呢?不一定,每个内部列表都可能缺少一个产品。但它往往是完整的