import pandas as pd
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.charts import Bar ,Pie,Radar
file_name = "C:\\Users\\dgd71\\Desktop\\大學\\創新實驗\\python學習\\數據\\newbaby.csv"
def bar_chart(x,y): #寫一個柱狀表(x軸,y軸)
bar =(
Bar() #創建對象
.add_xaxis(list(data[x])) #為x軸添加數據
.add_yaxis(y,list(data[y])) # 必須先寫y軸字符串名,數據類型必須是列表型。
.set_global_opts(title_opts=opts.TitleOpts(title="新生兒出生體長", subtitle="男女嬰"))
)
return bar.render()
def radar_picture(x,y,z,w,t): #自定義一個雷達圖函數(病人1,病人2,病人3,病人4,病人5)
patient1 =[list(patient_data.loc[x])[1:7]] #先取行,再轉換成列表切片。
patient2 =[list(patient_data.loc[y])[1:7]]
patient3 =[list(patient_data.loc[z])[1:7]]
patient4 =[list(patient_data.loc[w])[1:7]]
patient5 =[list(patient_data.loc[t])[1:7]]
c_schema =[ {"name":"懷孕次數","max":max(patient_data["Pregnancies"])},
{"name":"口服葡萄糖耐量試驗中血漿葡萄糖濃度為2小時", "max": max(patient_data["Glucose"])},
{"name": "舒張壓(mm Hg)", "max": max(patient_data["BloodPressure"])},
{"name": "肱三頭肌皮褶厚度(mm)", "max": max(patient_data["SkinThickness"])},
{"name": "2小時血清胰島素(μU/ ml)", "max": max(patient_data["Insulin"])},
{"name": "BMI身體質量指數(體重kg /(身高m)^ 2)", "max": max(patient_data["BMI"])},
]
rader = Radar()
rader.add_schema(c_schema)
rader.add("病人1",patient1,color="#90ff00")
rader.add("病人2",patient2,color="#203f70")
rader.add("病人3",patient3,color="#301ff0")
rader.add("病人4",patient4, color="#00ff00")
rader.add("病人5",patient5)
rader.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
rader.set_global_opts(
title_opts=opts.TitleOpts(title="患病因數"), #標題
)
# rader =(
# Radar()
# .add_schema(
# schema=[
# opts.RadarIndicatorItem(name="懷孕次數",max_=20),
# opts.RadarIndicatorItem(name="口服葡萄糖耐量試驗中血漿葡萄糖濃度為2小時", max_=200),
# opts.RadarIndicatorItem(name="舒張壓(mm Hg)", max_=130),
# opts.RadarIndicatorItem(name="肱三頭肌皮褶厚度(mm)", max_=50),
# opts.RadarIndicatorItem(name="2小時血清胰島素(μU/ ml)", max_=600),
# opts.RadarIndicatorItem(name="BMI身體質量指數(體重kg /(身高m)^ 2)", max_=50),
#
# ]
# )
# .add("病人1",patient1)
# .add("病人2",patient2)
# .add("病人3",patient3)
# .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
# .set_global_opts(
# legend_opts=opts.LegendOpts(selected_mode="single"),
# title_opts=opts.TitleOpts(title="患病因數"),
# )
# )
return rader.render()
if __name__ == "__main__":
try:
patient_data = pd.DataFrame(pd.read_csv("diabetesP1.csv"))
data = pd.read_csv(file_name)
radar_picture(3,23,8,129,89)
#bar_chart("gender","newBabyHeight")
except FileNotFoundError:
print("文件沒有存在")