pyecharts-动态可视化(2)柱状图时间轴折线堆叠⽔印瀑布图pyecharts中 柱状图的形式 应该基本就在这了!!代码可以直接运⾏~超级详细的注释,还有动图呢!!
在制作柱状图可能会遇到的组合,所需⽤到的代码均做了注释,⽤的V1版本。⾮常的⼩⽩,⾮常的友好!!
弹跳动画+⽔平线标注+点点标注
加⼊了时间轴的柱状图
⽔平线/圈选/切换柱状图、折线、堆叠
混合柱状和折线
部分堆叠+打⽔印
堆叠柱状图
旋转x轴、y轴标签
瀑布图
弹跳动画+⽔平线标注+点点标注
弹跳动画: animation_easing="elasticOut"
取消默认显⽰:is_selected=False
单位标注: axislabel_opts=opts.LabelOpts(formatter="{value} /⽉")
点点的标注: markpoint_opts=opts.MarkPointOpts() 可以选择平均值/最⼩值/最⼤值标注,也可以⾃拟任意值
⽔平线的标注:markline_opts=opts.MarkLineOpts( )
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
c =(
#加了动画
Bar(init_opts=opts.InitOpts(
animation_opts=opts.AnimationOpts(
animation_delay=100, animation_easing="elasticOut"
)
))
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values(), is_selected=False)#取消默认显⽰
.set_global_opts(
title_opts=opts.TitleOpts(title="Bar-XY 轴名称",subtitle="slider-垂直"),
yaxis_opts=opts.AxisOpts(name="我是 Y 轴",# y轴名称
axislabel_opts=opts.LabelOpts(formatter="{value} /⽉")),#单位标注 xaxis_opts=opts.AxisOpts(name="我是 X 轴"),#x轴名称
datazoom_opts=opts.DataZoomOpts(orient="vertical",type_="inside"),#垂直 slider )
#标注最⼤值和最⼩值
.set_series_opts(
label_opts=opts.LabelOpts(is_show=False),
markpoint_opts=opts.MarkPointOpts(
data=[
opts.MarkPointItem(type_="min", name="最⼩值"),#这个⽤线拉
]
),
markline_opts=opts.MarkLineOpts(
data=[
opts.MarkLineItem(type_="max", name="最⼤值"),#这个点标注
]
),
)
.render("bar_xyaxis_name.html")
)
加⼊了时间轴的柱状图
背景颜⾊的设置:init_opts=opts.InitOpts(theme=ThemeType.LIGHT)
时间轴以及饼图的⽣成~
运⾏后会出现:
TypeError: add_yaxis() got an unexpected keyword argument 'yaxis_data’
解决⽅法:将yaxis_data 改成y_axis ,上⾯的代码已经改好了相关问题,替换即可运⾏。划重点!! 对y轴进⾏赋值最新版本不能⽤yaxis_data,要⽤ y_axis
# 2002 - 2011 年的数据
def get_year_overlap_chart(year:int)-> Bar:
bar =(
Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))#改了背景颜⾊
.add_xaxis(xaxis_data=name_list)
.add_yaxis(
series_name="GDP",
y_axis=total_data["dataGDP"][year],#对y轴进⾏赋值最新版本不能⽤yaxis_data,要⽤y_axis is_selected=False,
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
series_name="⾦融",
y_axis=total_data["dataFinancial"][year],
is_selected=False,
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
series_name="房地产",
y_axis=total_data["dataEstate"][year],
is_selected=False,
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
series_name="第⼀产业",
y_axis=total_data["dataPI"][year],
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
series_name="第⼆产业",
y_axis=total_data["dataSI"][year],
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
.add_yaxis(
series_name="第三产业",
textstyley_axis=total_data["dataTI"][year],
label_opts=opts.LabelOpts(is_show=False),
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="{}全国宏观经济指标".format(year), subtitle="数据来⾃国家统计局"
)
,
tooltip_opts=opts.TooltipOpts(
is_show=True, trigger="axis", axis_pointer_type="shadow"
),
)
)
pie =(
Pie()
.add(
series_name="GDP占⽐",
data_pair=[
["第⼀产业", total_data["dataPI"]["{}sum".format(year)]],
["第⼆产业", total_data["dataSI"]["{}sum".format(year)]],
["第三产业", total_data["dataTI"]["{}sum".format(year)]],
],
center=["75%","35%"],
radius="28%",
)
.set_series_opts(tooltip_opts=opts.TooltipOpts(is_show=True, trigger="item"))
)
return bar.overlap(pie)
# ⽣成时间轴的图
timeline = Timeline(init_opts=opts.InitOpts(width="1200px", height="560px"))#长度宽度设置for y in range(2002,2012):#时间轴
timeline.add(get_year_overlap_chart(year=y), time_point=str(y))
timeline.add_schema(is_auto_play=True, play_interval=1000)#⾃动播放与否,以及时间间隔der("finance_indices.html")
⽔平线/圈选/切换柱状图、折线、堆叠
⽔平线:datazoom_opts=opts.DataZoomOpts()
圈选功能:brush_opts=opts.BrushOpts()
切换折线/堆叠/柱状 :toolbox_opts=opts.ToolboxOpts()
图例的类型(商家A/商家B)显⽰与否:legend_opts=opts.LegendOpts(is_show=True)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论