파이썬으로 성장 차트를 재현하려고합니다. 기본 데이터는 일 단위로 나이를 사용하지만 2 개월 간격으로 나이 (x) 축을 표시하려고합니다. 이것은 축/라벨링 옵션을 사용하여 순전히 수행 할 수 있습니까? 아니면 계산 된 열을 데이터에 추가해야합니까?스케일을 변경하지 않고 파이 Plot 축의 계산 된 값을 표시합니다.
이것은 자체 학습용이므로 설명은 코드보다 더 환영합니다.
이 내가 가진 무엇 :
# Import the WHO weight-for-age data from Excel
import pandas
import matplotlib.pyplot as plt
import numpy as np
WHO_WFA = pandas.read_excel("PercentilesData.xlsx", sheetname="WGT_WHO")
# ... slice the dataframe and plot it
# steps omitted for brevity
# Plot with data:
plt.plot(maleAge, maleP01, maleAge, maleP1, maleAge, maleP3, maleAge, maleP5, maleAge, maleP10, maleAge, maleP15, maleAge, maleP25, maleAge, maleP50, maleAge, maleP75, maleAge, maleP85, maleAge, maleP90, maleAge, maleP95, maleAge, maleP97, maleAge, maleP99, maleAge, maleP999)
# Set up the axes/labels
plt.title('Weight-for-Age: male (WHO)')
plt.xlabel('Age (days)')
plt.ylabel('Weight (kg)')
plt.axis([0,1900,0,30])
plt.grid(True)
plt.show()
대신, x 축 2 개월 단위 (4, 6, 8, 10, 12의 틱이 있어야합니다 .. ~ 60). 그래도 데이터를 플로팅 한 날이 필요합니다! 따라서 x 축 값 60은 2로 표시되고 120 (일)은 4 (월) 등으로 표시됩니다.
감사합니다!
# month duration
mo = 30.4375
# divide age in days by month duration
plt.plot(maleAge/mo, maleP01, maleAge/mo, maleP1, maleAge/mo, maleP3, maleAge/mo, maleP5, maleAge/mo, maleP10, maleAge/mo, maleP15, maleAge/mo, maleP25, maleAge/mo, maleP50, maleAge/mo, maleP75, maleAge/mo, maleP85, maleAge/mo, maleP90, maleAge/mo, maleP95, maleAge/mo, maleP97, maleAge/mo, maleP99, maleAge/mo, maleP999)
# Adjust the maximum x value to 60 ...
plt.axis([0,60,0,30])
이 생성 :
만큼 x 축 범위 조정과 동일한 곡선을 초래할 않는다 개월 기간에 의해 값을 나누면 : UPDATE 1
마지막 단계는 12 개월마다 큰 눈금과 2 개월마다 작은 눈금을 사용하여 축을 표시하는 방법입니다.
진정한 호기심 : WHO 성장 차트의 월 길이는 30.4375 일로 표준화되었습니다. 데이터는 0에서 1856 일 (60.98 개월 완료)까지 지속됩니다. 매일 (0, 1, ... 1856)에는 각각 다른 백분위 곡선에 해당하는 15 개의 가중치가 있으며 총 27,840 개의 값이 있습니다.
원래 데이터가에서 공개적으로 볼 수 있습니다 : 한 달 30.4375 일이 있다고 가정 WHO data/weight-for-age for boys
이 상기 입력 데이터는 무엇입니까? 월은 일반적으로 28 일에서 31 일 사이이므로 결과가 분명하지 않습니다. – ImportanceOfBeingErnest
성장 차트의 경우 월은 30.4375 일로 간주됩니다. 데이터 범위는 0 ~ 1856 일 (60.98 개월 완료)입니다. 그러나 질문의 목적을 위해 계산에 사용 된 값은 중요하지 않습니다. – pediatrictactic
나이를 30.4375로 나눈 값으로 무엇이 잘못 되었습니까? 'plt.plot (maleAge/30.4375, maleP01, maleAge/30.4375, maleP1, ...)' – ImportanceOfBeingErnest