我正在使用Python 3.5和Matplotlib。我有不到一個月的Python經驗,但我有一個CSV文件中的數據,我需要以圖形方式表示。它只有3列:體重(磅),身高(英寸),體重指數。如果你想看到它,它是here。我只想爲4個BMI組中的每一個(BMI大於20,大於25但小於或等於30,大於20但小於或等於25)用不同的符號和顏色製作高度對重量散點圖,並且少於20)。如何使用Python和Matplotlib從CSV數據製作散點圖?
這是我到目前爲止。我覺得有一個更有效的方式來做到這一點。任何幫助/想法將不勝感激!
`import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
data2 = pd.read_csv('BMIData.csv')
bmi1 = data2[(data2.BMI<20)]
bmi2 = data2[(data2.BMI>20) & (data2.BMI<=25)]
bmi3 = data2[(data2.BMI>25) & (data2.BMI<=30)]
bmi4 = data2[(data2.BMI>30)]
bmi1h = bmi1.height.values
bmi1w = bmi1.weight.values
bmi2h = bmi2.height.values
bmi2w = bmi2.weight.values
bmi3h = bmi3.height.values
bmi3w = bmi3.weight.values
bmi4h = bmi4.height.values
bmi4w = bmi4.weight.values
plt.scatter(bmi1h, bmi1w, color='r', marker='*', label='Less than 20')
plt.scatter(bmi2h, bmi2w, color='b', marker='^', label='20 to 25')
plt.scatter(bmi3h, bmi3w, color='c', marker='x', label='25 to 30')
plt.scatter(bmi4h, bmi4w, color='m', label='Greater than 30')
plt.xlabel('Height (in)')
plt.ylabel('Weight (lb)')
plt.title('BMI Data')
plt.legend()
plt.axis([63,80,100,400])
plt.savefig('BMIplot.png', dpi=300)
plt.show()
`