창고에 대한 시작 및 끝 수량의 중첩 된 사전이 있습니다. 이 데이터를 matplotlib과 함께 stackplot으로 그래프로 나타내고 싶습니다. x 값이 목록이고 y 값이 목록의 목록이되도록 데이터를 변환해야합니다. 키가 cuttoff 날짜보다 작거나 같은 키로 플롯을 제한하고 싶습니다. 'cutoff'. 줄거리를 수행하는 모든 코드를 작성했지만 사전에서 데이터를 x 및 y 값으로 변환하는 데 문제가 있습니다. 아래의 예에서는 수동으로 값을 입력했습니다. 실제 스크립트에서는 훨씬 더 큰 데이터 세트가 있고 실제로 변환을 코딩하는 방법이 필요합니다. 당신은 DICT를 작성하고 데이터 사용을 주문한 경우중첩 된 사전을 다양한 목록으로 변환
y = [[d[k]['start qty'],d[k]['end qty']] for k in x]
: y는 키를 사용하십시오
x = [x for x in d if x <= cutoff]
:
from datetime import datetime
import matplotlib
import matplotlib.pyplot as plt
d = {
datetime(2015, 1, 19) : {'start qty': 13 , 'end qty': 12},
datetime(2015, 1, 20) : {'start qty': 10 , 'end qty': 34},
datetime(2015, 1, 21) : {'start qty': 30 , 'end qty': 35},
datetime(2015, 1, 22) : {'start qty': 20 , 'end qty': 40},
}
cutoff = datetime(2015, 1, 21)
y = [[13,10,30],[12,34,35]]
x = [datetime(2015, 1, 19), datetime(2015, 1, 20), datetime(2015, 1, 21)]
plt.stackplot(x,y)
plt.show()
@dsm. 고정 된 OP – user2242044