私はPython 3.5とMatplotlibを使用しています。私は1ヶ月未満のpythonの経験を持っていますが、グラフィカルに表現する必要があるCSVファイルにデータがあります。体重(ポンド)、身長(インチ)、BMIの3つの列しかありません。見たい場合はhereです。私はちょうど4つのBMIグループ(BMIが20より大きく、25より大きいが30より小さいか、20より大きいが25より小さいBMIグループのそれぞれについて異なるシンボルと色を持つ高さ対重量散布図を作成したい、および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()
`