1. 程式人生 > 實用技巧 >20200903(pyecharts進階-1)

20200903(pyecharts進階-1)

以下程式碼均在jupyter notebook中執行。

一、全域性配置

參照:https://pyecharts.org/#/zh-cn/global_options,所需功能可在該網站查詢,參照下面程式碼格式舉一反三實現所需。

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker

x = ["哈士奇", "泰迪", "金毛", "柯基", "吉娃娃", "牧羊犬"]
y1 = [140, 136, 144, 120, 119, 150]
y2 = [130, 146, 24, 110, 79, 110]

bar 
= Bar() bar.add_xaxis(x) bar.add_yaxis("商家A", y1) bar.add_yaxis("商家B", y2) #全域性配置:標題,座標軸,圖例 bar.set_global_opts(title_opts=opts.TitleOpts(title="寵物狗的銷售價格", subtitle="兩個商家的對比", title_link = "https://www.baidu.com", pos_left
= 'center'), xaxis_opts=opts.AxisOpts( name_rotate = 90), datazoom_opts = opts.DataZoomOpts(is_show = True), legend_opts = opts.LegendOpts(pos_left = "right")) bar.render_notebook()

圖:

二、系列配置項

  • set_series_opts
from pyecharts import options as opts
from pyecharts.charts import Bar from pyecharts.faker import Faker x = ["哈士奇", "泰迪", "金毛", "柯基", "吉娃娃", "牧羊犬"] y1 = [140, 136, 144, 120, 119, 150] y2 = [130, 146, 24, 110, 79, 110] bar = Bar() bar.add_xaxis(x) bar.add_yaxis("商家A", y1) bar.add_yaxis("商家B", y2) #全域性配置:標題,座標軸,圖例 bar.set_global_opts(title_opts=opts.TitleOpts(title="寵物狗的銷售價格", subtitle="兩個商家的對比", title_link = "https://www.baidu.com", pos_left = 'center'), xaxis_opts=opts.AxisOpts( name_rotate = 90), datazoom_opts = opts.DataZoomOpts(is_show = True), legend_opts = opts.LegendOpts(pos_left = "right")) #系列配置項;
bar.set_series_opts(label_opts = opts.LabelOpts(is_show = False), markpoint_opts = opts.MarkPointOpts( data = [ opts.MarkPointItem(type_ = "max", name = "最大值"), opts.MarkPointItem(type_ = "min", name = "最小值"), # ])) bar.render_notebook()

三、除了上面兩種方式之外,還可以直接放在x軸或者y軸上進行修飾

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker

x = ["哈士奇", "泰迪", "金毛", "柯基", "吉娃娃", "牧羊犬"]
y1 = [140, 136, 144, 120, 119, 150]
y2 = [130, 146, 24, 110, 79, 110]

bar = Bar()
bar.add_xaxis(x)
bar.add_yaxis("商家A", y1,itemstyle_opts = opts.ItemStyleOpts(color = "blue"))
bar.add_yaxis("商家B", y2)

#全域性配置:標題,座標軸,圖例
bar.set_global_opts(title_opts=opts.TitleOpts(title="寵物狗的銷售價格", subtitle="兩個商家的對比", 
                                              title_link = "https://www.baidu.com",
                                             pos_left = 'center'), 
                    xaxis_opts=opts.AxisOpts( name_rotate = 90),
                   datazoom_opts = opts.DataZoomOpts(is_show = True),
                   legend_opts = opts.LegendOpts(pos_left = "right"))
#系列配置項;
bar.set_series_opts(label_opts = opts.LabelOpts(is_show = False),
                   markpoint_opts = opts.MarkPointOpts(
                       data = [
                           opts.MarkPointItem(type_ = "max", name = "最大值"),
                           opts.MarkPointItem(type_ = "min", name = "最小值"),  #
                   ]))

bar.render_notebook()

四、我們再來看一些其他的具體示例

1.主題(全域性,InitOpts)

pyecharts內建提供了10+種不同的風格,另外也提供了便捷的定製主題的方法

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.globals import ThemeType

x = ["哈士奇", "泰迪", "金毛", "柯基", "吉娃娃", "牧羊犬"]
y1 = [140, 136, 144, 120, 119, 150]
y2 = [130, 146, 24, 110, 79, 110]

bar = Bar(init_opts = opts.InitOpts(theme=ThemeType.WALDEN))
bar.add_xaxis(x)
bar.add_yaxis("商家A", y1)
bar.add_yaxis("商家B", y2)

#全域性配置:標題,座標軸,圖例
bar.set_global_opts(title_opts=opts.TitleOpts(title="寵物狗的銷售價格", subtitle="兩個商家的對比", 
                                              title_link = "https://www.baidu.com",
                                             pos_left = 'center'), 
                    xaxis_opts=opts.AxisOpts( name_rotate = 90),
                   datazoom_opts = opts.DataZoomOpts(is_show = True),
                   legend_opts = opts.LegendOpts(pos_left = "right"))
#系列配置項;
bar.set_series_opts(label_opts = opts.LabelOpts(is_show = False),
                   markpoint_opts = opts.MarkPointOpts(
                       data = [
                           opts.MarkPointItem(type_ = "max", name = "最大值"),
                           opts.MarkPointItem(type_ = "min", name = "最小值"),  #
                   ]))

bar.render_notebook()