기사 디렉토리
머리말
패키지에 있는 모듈을 사용하는 방법과 그에 따른 꺾은선형 차트 및 지도를 그리는 방법을 배웠 pyecharts
으므로 오늘은 타임라인으로 히스토그램을 그리는 방법을 알려드리겠습니다.
히스토그램을 그리는 방법
세로 막대형 차트를 그리는 단계는 선형 차트와 대략 동일합니다.
pyecharts.charts
파이썬에서 히스토그램 그리기는 모듈 아래의 메서드 에 따라 다릅니다 Bar
.
from pyecharts.charts import Bar
bar = Bar()
x_data = ["英国","美国","中国"]
y_data = [10,20,30]
bar.add_xaxis(x_data)
bar.add_yaxis("GDP",y_data)
bar.render("柱状图.html")
데이터를 보다 선명하게 표시하기 위해 가로 좌표와 세로 좌표를 반전시킬 수도 있습니다.
bar.reversal_axis()
x축과 y축을 반전시키는 데 사용합니다 .
여기서는 데이터가 히스토그램으로 표시되어 있어 보기가 불편하지만 히스토그램 오른쪽에 데이터가 표시되도록 시리즈 구성 옵션을 설정할 수도 있습니다.
bar.add_yaxis("GDP",y_data,label_opts=LabelOpts(position="right"))
따라서 개선된 전체 코드는 다음과 같습니다.
from pyecharts.charts import Bar
from pyecharts.options import LabelOpts
bar = Bar()
x_data = ["英国","美国","中国"]
y_data = [10,20,30]
bar.add_xaxis(x_data)
bar.add_yaxis("GDP",y_data,label_opts=LabelOpts(position="right"))
bar.reversal_axis() # 反转x轴和y轴
bar.render("柱状图.html")
타임라인 추가
타임라인을 추가하여 다양한 데이터를 볼 수 있는데, 각각의 시간은 사실 히스토그램이고 타임라인은 히스토그램이 하나씩 구성되어 있습니다.
from pyecharts.charts import Bar,Timeline
from pyecharts.options import LabelOpts,TitleOpts
bar1 = Bar()
bar2 = Bar()
bar3 = Bar()
x_data = ["英国","美国","中国"]
y_data1 = [10,20,30]
y_data2 = [20,30,40]
y_data3 = [40,50,70]
bar1.add_xaxis(x_data)
bar1.add_yaxis("GDP",y_data1,label_opts=LabelOpts(position="right"))
bar1.reversal_axis() # 反转x轴和y轴
bar1.set_global_opts(title_opts=TitleOpts(title="2021年GDP"))
bar2.add_xaxis(x_data)
bar2.add_yaxis("GDP",y_data2,label_opts=LabelOpts(position="right"))
bar2.reversal_axis() # 反转x轴和y轴
bar2.set_global_opts(title_opts=TitleOpts(title="2022年GDP"))
bar3.add_xaxis(x_data)
bar3.add_yaxis("GDP",y_data3,label_opts=LabelOpts(position="right"))
bar3.reversal_axis() # 反转x轴和y轴
bar3.set_global_opts(title_opts=TitleOpts(title="2023年GDP"))
timeline = Timeline()
timeline.add(bar1,"2021")
timeline.add(bar2,"2022")
timeline.add(bar3,"2023")
timeline.render("2021-2023中美英三国GDP.html")
동적 히스토그램에 애니메이션을 적용하려면 구성 옵션을 설정해야 합니다.
timeline.add_schema(
play_interval=1000, # 每个柱状图播放间隔时间,单位(毫秒)
is_timeline_show=True, # 是否显示时间线,默认显示
is_auto_play=True, # 是否自动播放
is_loop_play=True # 是否循环播放
)
제공된 데이터를 기반으로 동적 히스토그램을 그립니다.
상위 8개 국가와 1960년부터 2014년까지의 국가 GDP 데이터 데이터를 보여줍니다. 여기에 제공된 데이터에 대해 개인적으로 메시지를 보낼 수 있습니다.
여기에 제공된 데이터는 비교적 간단합니다. 첫 번째 행에서 쓸모 없는 데이터를 삭제한 다음 데이터를 히스토그램을 그리는 데 필요한 데이터로 변환하기만 하면 됩니다.
쓸모없는 데이터 읽기 및 삭제
f = open("D:/桌面/1960-2019全球GDP数据.csv","r",encoding="GB2312")
data_lines = f.readlines()
f.close()
data_lines.pop(0)
GB2312 인코딩은 중국어 인코딩 형식입니다.
데이터를 사전으로 변환
data_dict = {
}
for line in data_lines:
data_list = line.split(",") # 每一行以逗号分割,返回一个列表
year = data_list[0]
country = data_list[1]
GDP = float(data_list[2][:-1]) # 每一行最后有一个换行符
# 这里需要做出异常判断,因为当我们第一次插入数据的时候并没有容器来装这些数据
try:
data_dict[year].append((country, GDP))
except:
data_dict[year] = []
data_dict[year].append([country, GDP])
히스토그램을 만들어 타임라인에 추가
sorted_year_line = sorted(data_dict.keys()) # 按时间顺序排序
timeline = Timeline({
"scheme":ThemeType.LIGHT}) # 在创建时间线的时候传入scheme参数可以设置时间线的主题,也就是柱状图的颜色
for year in sorted_year_line:
x_data = []
y_data = []
data_dict[year].sort(key=lambda element : element[1],reverse=True)
year_data = data_dict[year][0:8] # 取GDP前八的数据
for data in year_data:
x_data.append(data[0])
y_data.append(data[1] / 100000000)
bar = Bar()
x_data.reverse()
y_data.reverse() # 让GDP排名第一的数据在最上面,所以我们将x_data 和 y_data中的数据反转一下
bar.add_xaxis(x_data)
bar.add_yaxis("GDP(亿)",y_data,label_opts=LabelOpts(position="right"))
bar.reversal_axis() # 将x轴和y轴翻转
bar.set_global_opts(
title_opts=TitleOpts(title=f"{
year}年全国GDP数据前八")
)
timeline.add(bar,year)
옵션 구성 및 데이터가 포함된 선형 차트 생성
timeline.add_schema(
play_interval=1000,
is_timeline_show=True,
is_auto_play=True,
is_loop_play=False
)
timeline.render("1960-2014年全国GDP数据前八.html")