Pyecharts笔记(2)-直角坐标系图表(Bar)

2023-11-02 22:59

本文主要是介绍Pyecharts笔记(2)-直角坐标系图表(Bar),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 50.Bar:柱状图/条形图
    • 50.1 Bar - Stack_bar_percent
    • 50.2 Bar - Bar_rotate_xaxis_label
    • 50.3 Bar - Bar_stack0
    • ?50.4 Bar - Finance_indices_2002(略)
    • 50.5 Bar - Bar_base_dict_config
    • 50.6 Bar - Bar_with_brush
    • 50.7 Bar - Bar_datazoom_slider
    • 50.8 Bar - Bar_toolbox
    • 50.9 Bar - Bar_waterfall_plot
    • 50.10 Bar - Mixed_bar_and_line
    • 50.11 Bar - Bar_stack1
    • 50.12 Bar - Bar_xyaxis_name
    • 50.13 Bar - Bar_base_with_custom_background_image
    • 50.14 Bar - Bar_chart_display_delay(动画延迟效果暂时没有加入到代码中)
    • 50.15 Bar - Bar_datazoom_slider_vertical
    • 50.16 Bar - Bar_histogram_color
    • 50.17 Bar - Bar_yaxis_formatter
    • 50.18 Bar - Bar_markpoint_type
    • 50.19 Bar - Multiple_y_axes
    • 50.20 Bar - Bar_custom_bar_color
    • 50.21 Bar - Bar_different_series_gap
    • 50.22 Bar - Bar_markline_type
    • ?50.23 Bar - Bar_border_radius
    • 50.24 Bar - Bar_same_series_gap
    • 50.25 Bar - Bar_datazoom_inside
    • 50.26 Bar - Bar_is_selected
    • 50.27 Bar - Bar_reversal_axis
    • 50.28 Bar - Bar_markpoint_custom
    • 50.29 Bar - Bar_base_with_animation
    • 50.30 Bar - Bar_histogram
    • 50.31 Bar - Bar_markline_custom
    • 50.32 Bar - Bar_base
    • 50.33 Bar - Bar_datazoom_both
    • 51.Bar实践项目
    • 51.1 Bar - Bar_markpoint_custom:add_yaxis()的markpoint_opts=opts.MarkPointOpts()会让set_series_opts()的markpoint_opts=opts.MarkPointOpts()失效
    • 51.2 Bar综合例子1
    • 51.3 Bar综合例子2
    • 51.4 Bar综合例子3
    • 51.5 Bar综合例子4
    • 51.6 Bar综合例子5
    • 51.7 Bar综合例子6:看多y轴的要点
    • 51.8 Bar综合例子7:append()来添加opts.BarItem()以区别各条的颜色


50.Bar:柱状图/条形图

https://pyecharts.org/#/zh-cn/rectangular_charts

  • class pyecharts.charts.Bar(RectChart)
class Bar(# 初始化配置项,参考 `global_options.InitOpts`init_opts: opts.InitOpts = opts.InitOpts()
)
  • func pyecharts.charts.Bar.add_yaxis
def add_yaxis(# 系列名称,用于 tooltip 的显示,legend 的图例筛选。series_name: str,# 系列数据y_axis: Sequence[Numeric, opts.BarItem, dict],# 是否选中图例is_selected: bool = True,# 使用的 x 轴的 index,在单个图表实例中存在多个 x 轴的时候有用。xaxis_index: Optional[Numeric] = None,# 使用的 y 轴的 index,在单个图表实例中存在多个 y 轴的时候有用。yaxis_index: Optional[Numeric] = None,# 是否启用图例 hover 时的联动高亮is_legend_hover_link: bool = True,# 系列 label 颜色color: Optional[str] = None,# 是否显示柱条的背景色。通过 backgroundStyle 配置背景样式。is_show_background: bool = False,# 每一个柱条的背景样式。需要将 showBackground 设置为 true 时才有效。background_style: types.Union[types.BarBackground, dict, None] = None,# 数据堆叠,同个类目轴上系列配置相同的 stack 值可以堆叠放置。stack: Optional[str] = None,# 柱条的宽度,不设时自适应。# 可以是绝对值例如 40 或者百分数例如 '60%'。百分数基于自动计算出的每一类目的宽度。# 在同一坐标系上,此属性会被多个 'bar' 系列共享。此属性应设置于此坐标系中最后一个 'bar' 系列上才会生效,并且是对此坐标系中所有 'bar' 系列生效。bar_width: types.Union[types.Numeric, str] = None,# 柱条的最大宽度。比 barWidth 优先级高。bar_max_width: types.Union[types.Numeric, str] = None,# 柱条的最小宽度。在直角坐标系中,默认值是 1。否则默认值是 null。比 barWidth 优先级高。bar_min_width: types.Union[types.Numeric, str] = None,# 柱条最小高度,可用于防止某数据项的值过小而影响交互。bar_min_height: types.Numeric = 0,# 同一系列的柱间距离,默认为类目间距的 20%,可设固定值category_gap: Union[Numeric, str] = "20%",# 不同系列的柱间距离,为百分比(如 '30%',表示柱子宽度的 30%)。# 如果想要两个系列的柱子重叠,可以设置 gap 为 '-100%'。这在用柱子做背景的时候有用。gap: Optional[str] = "30%",# 是否开启大数据量优化,在数据图形特别多而出现卡顿时候可以开启。# 开启后配合 largeThreshold 在数据量大于指定阈值的时候对绘制进行优化。# 缺点:优化后不能自定义设置单个数据项的样式。is_large: bool = False,# 开启绘制优化的阈值。large_threshold: types.Numeric = 400,# 使用 dimensions 定义 series.data 或者 dataset.source 的每个维度的信息。# 注意:如果使用了 dataset,那么可以在 dataset.source 的第一行/列中给出 dimension 名称。# 于是就不用在这里指定 dimension。# 但是,如果在这里指定了 dimensions,那么 ECharts 不再会自动从 dataset.source 的第一行/列中获取维度信息。dimensions: types.Union[types.Sequence, None] = None,# 当使用 dataset 时,seriesLayoutBy 指定了 dataset 中用行还是列对应到系列上,也就是说,系列“排布”到 dataset 的行还是列上。可取值:# 'column':默认,dataset 的列对应于系列,从而 dataset 中每一列是一个维度(dimension)。# 'row':dataset 的行对应于系列,从而 dataset 中每一行是一个维度(dimension)。series_layout_by: str = "column",# 如果 series.data 没有指定,并且 dataset 存在,那么就会使用 dataset。# datasetIndex 指定本系列使用那个 dataset。dataset_index: types.Numeric = 0,# 是否裁剪超出坐标系部分的图形。柱状图:裁掉所有超出坐标系的部分,但是依然保留柱子的宽度is_clip: bool = True,# 柱状图所有图形的 zlevel 值。z_level: types.Numeric = 0,# 柱状图组件的所有图形的z值。控制图形的前后顺序。# z值小的图形会被z值大的图形覆盖。# z相比zlevel优先级更低,而且不会创建新的 Canvas。z: types.Numeric = 2,# 标签配置项,参考 `series_options.LabelOpts`label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),# 标记点配置项,参考 `series_options.MarkPointOpts`markpoint_opts: Union[opts.MarkPointOpts, dict, None] = None,# 标记线配置项,参考 `series_options.MarkLineOpts`markline_opts: Union[opts.MarkLineOpts, dict, None] = None,# 提示框组件配置项,参考 `series_options.TooltipOpts`tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,# 图元样式配置项,参考 `series_options.ItemStyleOpts`itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,# 可以定义 data 的哪个维度被编码成什么。encode: types.Union[types.JSFunc, dict, None] = None,
)
  • BarItem:柱状图数据项
class BarItem(# 数据项名称。name: Optional[str] = None,# 单个数据项的数值。value: Optional[Numeric] = None,# 单个柱条文本的样式设置,参考 `series_options.LabelOpts`。label_opts: Union[LabelOpts, dict, None] = None,# 图元样式配置项,参考 `series_options.ItemStyleOpts`itemstyle_opts: Union[ItemStyleOpts, dict, None] = None,# 提示框组件配置项,参考 `series_options.TooltipOpts`tooltip_opts: Union[TooltipOpts, dict, None] = None,
)
  • BarBackgroundStyleOpts:柱状图背景样式配置
class BarBackgroundStyleOpts(# 柱条的颜色。color: str = "rgba(180, 180, 180, 0.2)",# 柱条的描边颜色。border_color: str = "#000",# 柱条的描边宽度,默认不描边。border_width: Numeric = 0,# 柱条的描边类型,默认为实线,支持 'dashed', 'dotted'。border_type: str = "solid",# 圆角半径,单位px,支持传入数组分别指定 4 个圆角半径。 如:# barBorderRadius: 5, // 统一设置四个角的圆角大小# barBorderRadius: [5, 5, 0, 0] //(顺时针左上,右上,右下,左下)bar_border_radius: Union[Numeric, Sequence] = 0,# 图形阴影的模糊大小。# 该属性配合 shadowColor,shadowOffsetX, shadowOffsetY 一起设置图形的阴影效果。shadow_blur: Optional[Numeric] = None,# 阴影颜色。支持的格式同color。shadow_color: Optional[str] = None,# 阴影水平方向上的偏移距离。shadow_offset_x: Numeric = 0,# 阴影垂直方向上的偏移距离。shadow_offset_y: Numeric = 0,# 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。opacity: Optional[Numeric] = None,
)

50.1 Bar - Stack_bar_percent

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeTypelist2 = [{"value": 12, "percent": 12 / (12 + 3)},{"value": 23, "percent": 23 / (23 + 21)},{"value": 33, "percent": 33 / (33 + 5)},{"value": 3, "percent": 3 / (3 + 52)},{"value": 33, "percent": 33 / (33 + 43)},
]list3 = [{"value": 3, "percent": 3 / (12 + 3)},{"value": 21, "percent": 21 / (23 + 21)},{"value": 5, "percent": 5 / (33 + 5)},{"value": 52, "percent": 52 / (3 + 52)},{"value": 43, "percent": 43 / (33 + 43)},
]c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)).add_xaxis([1, 2, 3, 4, 5]).add_yaxis("product1", list2, stack="stack1", category_gap="50%").add_yaxis("product2", list3, stack="stack1", category_gap="50%").set_series_opts(label_opts=opts.LabelOpts(position="right",formatter=JsCode("function(x){return Number(x.data.percent * 100).toFixed() + '%';}"),)).render("stack_bar_percent.html")
)

在这里插入图片描述

50.2 Bar - Bar_rotate_xaxis_label

链接

from pyecharts import options as opts
from pyecharts.charts import Barc = (Bar().add_xaxis(["名字很长的X轴标签1","名字很长的X轴标签2","名字很长的X轴标签3","名字很长的X轴标签4","名字很长的X轴标签5","名字很长的X轴标签6",]).add_yaxis("商家A", [10, 20, 30, 40, 50, 40]).add_yaxis("商家B", [20, 10, 40, 30, 40, 50]).set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),title_opts=opts.TitleOpts(title="Bar-旋转X轴标签", subtitle="解决标签名字过长的问题"),).render("bar_rotate_xaxis_label.html")
)

在这里插入图片描述

50.3 Bar - Bar_stack0

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values(), stack="stack1").add_yaxis("商家B", Faker.values(), stack="stack1").set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title="Bar-堆叠数据(全部)")).render("bar_stack0.html")
)

在这里插入图片描述

?50.4 Bar - Finance_indices_2002(略)

链接

50.5 Bar - Bar_base_dict_config

链接

from pyecharts.charts import Bar
from pyecharts.faker import Faker
from pyecharts.globals import ThemeTypec = (Bar({"theme": ThemeType.MACARONS}).add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts={"text": "Bar-通过 dict 进行配置", "subtext": "我也是通过 dict 进行配置的"}).render("bar_base_dict_config.html")
)

在这里插入图片描述

50.6 Bar - Bar_with_brush

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-Brush示例", subtitle="我是副标题"),brush_opts=opts.BrushOpts(),).render("bar_with_brush.html")
)

在这里插入图片描述

50.7 Bar - Bar_datazoom_slider

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.days_attrs).add_yaxis("商家A", Faker.days_values).set_global_opts(title_opts=opts.TitleOpts(title="Bar-DataZoom(slider-水平)"),datazoom_opts=opts.DataZoomOpts(),).render("bar_datazoom_slider.html")
)

在这里插入图片描述

50.8 Bar - Bar_toolbox

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-显示 ToolBox"),toolbox_opts=opts.ToolboxOpts(),legend_opts=opts.LegendOpts(is_show=False),).render("bar_toolbox.html")
)

在这里插入图片描述

50.9 Bar - Bar_waterfall_plot

链接

from pyecharts.charts import Bar
from pyecharts import options as optsx_data = [f"11月{str(i)}日" for i in range(1, 12)]
y_total = [0, 900, 1245, 1530, 1376, 1376, 1511, 1689, 1856, 1495, 1292]
y_in = [900, 345, 393, "-", "-", 135, 178, 286, "-", "-", "-"]
y_out = ["-", "-", "-", 108, 154, "-", "-", "-", 119, 361, 203]bar = (Bar().add_xaxis(xaxis_data=x_data).add_yaxis(series_name="",yaxis_data=y_total,stack="总量",itemstyle_opts=opts.ItemStyleOpts(color="rgba(0,0,0,0)"),).add_yaxis(series_name="收入", yaxis_data=y_in, stack="总量").add_yaxis(series_name="支出", yaxis_data=y_out, stack="总量").set_global_opts(yaxis_opts=opts.AxisOpts(type_="value")).render("bar_waterfall_plot.html")
)

在这里插入图片描述

50.10 Bar - Mixed_bar_and_line

链接

import pyecharts.options as opts
from pyecharts.charts import Bar, Line"""
Gallery 使用 pyecharts 1.1.0
参考地址: https://www.echartsjs.com/examples/editor.html?c=mix-line-bar目前无法实现的功能:1、暂无
"""x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]bar = (Bar(init_opts=opts.InitOpts(width="1600px", height="800px")).add_xaxis(xaxis_data=x_data).add_yaxis(series_name="蒸发量",yaxis_data=[2.0,4.9,7.0,23.2,25.6,76.7,135.6,162.2,32.6,20.0,6.4,3.3,],label_opts=opts.LabelOpts(is_show=False),).add_yaxis(series_name="降水量",yaxis_data=[2.6,5.9,9.0,26.4,28.7,70.7,175.6,182.2,48.7,18.8,6.0,2.3,],label_opts=opts.LabelOpts(is_show=False),).extend_axis(yaxis=opts.AxisOpts(name="温度",type_="value",min_=0,max_=25,interval=5,axislabel_opts=opts.LabelOpts(formatter="{value} °C"),)).set_global_opts(tooltip_opts=opts.TooltipOpts(is_show=True, trigger="axis", axis_pointer_type="cross"),xaxis_opts=opts.AxisOpts(type_="category",axispointer_opts=opts.AxisPointerOpts(is_show=True, type_="shadow"),),yaxis_opts=opts.AxisOpts(name="水量",type_="value",min_=0,max_=250,interval=50,axislabel_opts=opts.LabelOpts(formatter="{value} ml"),axistick_opts=opts.AxisTickOpts(is_show=True),splitline_opts=opts.SplitLineOpts(is_show=True),),)
)line = (Line().add_xaxis(xaxis_data=x_data).add_yaxis(series_name="平均温度",yaxis_index=1,y_axis=[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],label_opts=opts.LabelOpts(is_show=False),)
)bar.overlap(line).render("mixed_bar_and_line.html")

在这里插入图片描述

50.11 Bar - Bar_stack1

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values(), stack="stack1").add_yaxis("商家B", Faker.values(), stack="stack1").add_yaxis("商家C", Faker.values()).set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title="Bar-堆叠数据(部分)")).render("bar_stack1.html")
)

在这里插入图片描述

50.12 Bar - Bar_xyaxis_name

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-XY 轴名称"),yaxis_opts=opts.AxisOpts(name="我是 Y 轴"),xaxis_opts=opts.AxisOpts(name="我是 X 轴"),).render("bar_xyaxis_name.html")
)

在这里插入图片描述

50.13 Bar - Bar_base_with_custom_background_image

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.commons.utils import JsCode
from pyecharts.faker import Fakerc = (Bar(init_opts=opts.InitOpts(bg_color={"type": "pattern", "image": JsCode("img"), "repeat": "no-repeat"})).add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-背景图基本示例",subtitle="我是副标题",title_textstyle_opts=opts.TextStyleOpts(color="white"),))
)
c.add_js_funcs("""var img = new Image(); img.src = 'https://s2.ax1x.com/2019/07/08/ZsS0fK.jpg';"""
)
c.render("bar_base_with_custom_background_image.html")

在这里插入图片描述

50.14 Bar - Bar_chart_display_delay(动画延迟效果暂时没有加入到代码中)

链接

import pyecharts.options as opts
from pyecharts.charts import Bar"""
Gallery 使用 pyecharts 1.1.0
参考地址: https://www.echartsjs.com/examples/editor.html?c=bar-animation-delay目前无法实现的功能:1、动画延迟效果暂时没有加入到代码中
"""category = ["类目{}".format(i) for i in range(0, 100)]
red_bar = [0,-8.901463875624668,-17.025413764148556,-24.038196249566663,-29.66504684804471,-33.699527649688676,-36.00971978255796,-36.541005056170455,-35.31542466107655,-32.427752866005996,-28.038563739693934,-22.364693082297347,-15.667600860943732,-8.240217424060843,-0.3929067389459173,7.560799717904647,15.318054209871054,22.599523033552096,29.16065418543528,34.800927952557615,39.37074152590451,42.77569739999406,44.97819140223978,45.99632376477021,45.900279829731865,44.806440199911805,42.86957840395034,40.2735832137877,37.22119936652441,33.92331243435557,30.588309963978517,27.412031986865767,24.56878097935778,22.203796820272576,20.427519715115604,19.311867685884827,18.888649906111855,19.150128087782186,20.051630602288828,21.516023200879346,23.439750867099516,25.700091656548704,28.163208735293757,30.692553648214542,33.1571635093161,35.439407573791215,37.44177367693234,39.09234039030659,40.34865356244595,41.19981246258526,41.66666666666667,41.80012531240646,41.67768039516203,41.39834040182826,41.07625507973403,40.833382300579814,40.79160029175877,41.06470032034727,41.75070457358366,42.924940903672564,44.63427081999565,46.89281122872821,49.679416561286956,52.93709961387478,56.574470884754874,60.46917221906629,64.47317623531558,68.41972346252496,72.1315793340836,75.43021771943799,78.14548044723074,80.12522637371026,81.24447108408411,81.41353029256493,80.58471628367427,78.75719600392792,75.97969924353211,72.35086229880064,68.01710226438443,63.16803467673056,58.029567166714706,52.854918421647554,47.91391949819902,43.48104807503482,39.82272085822884,37.18442111754884,35.778264289169215,35.77160292258658,37.27724241244461,40.345781666728996,44.96051012913295,51.035187614675685,58.41491053964701,66.8801325453253,76.15376513468516,85.91114110149952,95.79248672571518,105.41742429574506,114.40092042993717,122.37001313784816,
]
blue_bar = [-50,-47.18992898088751,-42.54426104547181,-36.290773900754886,-28.71517529663627,-20.146937097399626,-10.94374119697364,-1.4752538113770308,7.893046603320797,16.81528588241657,24.979206795219028,32.11821023962515,38.02096119056733,42.53821720798438,45.58667093073836,47.14973738101559,47.275355710354944,46.07100702178889,43.6962693226927,40.35333240268025,36.275975292575026,31.71756381888028,26.938653692729076,22.194784893913152,17.725026430574392,13.741778696752679,10.422266555457615,7.902063853319403,6.270884006107842,5.570756810898967,5.796594266992678,6.899033489892203,8.7893381290192,11.346045936704996,14.42297348773613,17.858132851517098,21.483081596548438,25.132218074866262,28.651548555679597,31.906490373810854,34.788333671419466,37.21906041552118,39.154309232933485,40.58437366457342,41.5332247510366,42.05565130942339,42.23270781895,42.165745792772285,41.969375711588256,41.76375960543808,41.66666666666667,41.7857343479728,42.21136481847887,43.01065209435119,44.22268037417866,45.855461823273586,47.88469584957917,50.25443606443524,52.879650371477126,55.650558977584225,58.43853958732492,61.10330341815434,63.500974294013034,65.49264961151306,66.95298925309743,67.77836838841961,67.89414332224722,67.26061575374229,65.87733853082335,63.785482681031894,61.068077697490004,57.84804048526095,54.284018163297375,50.564180830851214,46.89820707575337,43.50780217852947,40.616171775045245,38.4369379107128,37.16302649485318,36.95607267600796,37.93688225696513,40.17745279877072,43.694998595987045,48.44834150353593,54.33692802801367,61.20261650152743,68.83425165632042,76.97491319735354,85.33159602026458,93.58695857541488,101.4126683297632,108.48378461530217,114.49355390682695,119.16795429637915,122.27931702317058,123.65837448506679,123.20413594805603,120.89107255501017,116.7731992576505,110.98476877890735,
](Bar(init_opts=opts.InitOpts(width="1600px", height="800px")).add_xaxis(xaxis_data=category).add_yaxis(series_name="bar", yaxis_data=red_bar, label_opts=opts.LabelOpts(is_show=False)).add_yaxis(series_name="bar2",yaxis_data=blue_bar,label_opts=opts.LabelOpts(is_show=False),).set_global_opts(title_opts=opts.TitleOpts(title="柱状图动画延迟"),xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=False)),yaxis_opts=opts.AxisOpts(axistick_opts=opts.AxisTickOpts(is_show=True),splitline_opts=opts.SplitLineOpts(is_show=True),),).render("bar_chart_display_delay.html")
)

在这里插入图片描述

50.15 Bar - Bar_datazoom_slider_vertical

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.days_attrs).add_yaxis("商家A", Faker.days_values, color=Faker.rand_color()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-DataZoom(slider-垂直)"),datazoom_opts=opts.DataZoomOpts(orient="vertical"),).render("bar_datazoom_slider_vertical.html")
)

在这里插入图片描述

50.16 Bar - Bar_histogram_color

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerx = Faker.dogs + Faker.animal
xlen = len(x)
y = []
for idx, item in enumerate(x):if idx <= xlen / 2:y.append(opts.BarItem(name=item,value=(idx + 1) * 10,itemstyle_opts=opts.ItemStyleOpts(color="#749f83"),))else:y.append(opts.BarItem(name=item,value=(xlen + 1 - idx) * 10,itemstyle_opts=opts.ItemStyleOpts(color="#d48265"),))c = (Bar().add_xaxis(x).add_yaxis("series0", y, category_gap=0, color=Faker.rand_color()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-直方图(颜色区分)")).render("bar_histogram_color.html")
)

在这里插入图片描述

50.17 Bar - Bar_yaxis_formatter

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-Y 轴 formatter"),yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} /月")),).render("bar_yaxis_formatter.html")
)

在这里插入图片描述

50.18 Bar - Bar_markpoint_type

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-MarkPoint(指定类型)")).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="最小值"),opts.MarkPointItem(type_="average", name="平均值"),]),).render("bar_markpoint_type.html")
)

在这里插入图片描述

50.19 Bar - Multiple_y_axes

链接

import pyecharts.options as opts
from pyecharts.charts import Bar, Line"""
Gallery 使用 pyecharts 1.0.0
参考地址: https://www.echartsjs.com/examples/editor.html?c=multiple-y-axis目前无法实现的功能:1、暂无
"""colors = ["#5793f3", "#d14a61", "#675bba"]
x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]
legend_list = ["蒸发量", "降水量", "平均温度"]
evaporation_capacity = [2.0,4.9,7.0,23.2,25.6,76.7,135.6,162.2,32.6,20.0,6.4,3.3,
]
rainfall_capacity = [2.6,5.9,9.0,26.4,28.7,70.7,175.6,182.2,48.7,18.8,6.0,2.3,
]
average_temperature = [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]bar = (Bar(init_opts=opts.InitOpts(width="1680px", height="800px")).add_xaxis(xaxis_data=x_data).add_yaxis(series_name="蒸发量",yaxis_data=evaporation_capacity,yaxis_index=0,color=colors[1],).add_yaxis(series_name="降水量", yaxis_data=rainfall_capacity, yaxis_index=1, color=colors[0]).extend_axis(yaxis=opts.AxisOpts(name="蒸发量",type_="value",min_=0,max_=250,position="right",axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color=colors[1])),axislabel_opts=opts.LabelOpts(formatter="{value} ml"),)).extend_axis(yaxis=opts.AxisOpts(type_="value",name="温度",min_=0,max_=25,position="left",axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color=colors[2])),axislabel_opts=opts.LabelOpts(formatter="{value} °C"),splitline_opts=opts.SplitLineOpts(is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1)),)).set_global_opts(yaxis_opts=opts.AxisOpts(type_="value",name="降水量",min_=0,max_=250,position="right",offset=80,axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color=colors[0])),axislabel_opts=opts.LabelOpts(formatter="{value} ml"),),tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),)
)line = (Line().add_xaxis(xaxis_data=x_data).add_yaxis(series_name="平均温度", y_axis=average_temperature, yaxis_index=2, color=colors[2])
)bar.overlap(line).render("multiple_y_axes.html")

在这里插入图片描述

50.20 Bar - Bar_custom_bar_color

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.commons.utils import JsCode
from pyecharts.faker import Fakercolor_function = """function (params) {if (params.value > 0 && params.value < 50) {return 'red';} else if (params.value > 50 && params.value < 100) {return 'blue';}return 'green';}"""
c = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A",Faker.values(),itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function)),).add_yaxis("商家B",Faker.values(),itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function)),).add_yaxis("商家C",Faker.values(),itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function)),).set_global_opts(title_opts=opts.TitleOpts(title="Bar-自定义柱状颜色")).render("bar_custom_bar_color.html")
)

在这里插入图片描述

50.21 Bar - Bar_different_series_gap

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values(), gap="0%").add_yaxis("商家B", Faker.values(), gap="0%").set_global_opts(title_opts=opts.TitleOpts(title="Bar-不同系列柱间距离")).render("bar_different_series_gap.html")
)

在这里插入图片描述

50.22 Bar - Bar_markline_type

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-MarkLine(指定类型)")).set_series_opts(label_opts=opts.LabelOpts(is_show=False),markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="min", name="最小值"),opts.MarkLineItem(type_="max", name="最大值"),opts.MarkLineItem(type_="average", name="平均值"),]),)
)

在这里插入图片描述

?50.23 Bar - Bar_border_radius

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.commons.utils import JsCode
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values(), category_gap="60%").set_series_opts(itemstyle_opts={"normal": {"color": JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0,color: 'rgba(0, 244, 255, 1)'}, {offset: 1,color: 'rgba(0, 77, 167, 1)'}], false)"""),"barBorderRadius": [30, 30, 30, 30],"shadowColor": "rgb(0, 160, 221)",}}).set_global_opts(title_opts=opts.TitleOpts(title="Bar-渐变圆柱")).render("bar_border_radius.html")
)

在这里插入图片描述

50.24 Bar - Bar_same_series_gap

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values(), category_gap="80%").set_global_opts(title_opts=opts.TitleOpts(title="Bar-单系列柱间距离")).render("bar_same_series_gap.html")
)

在这里插入图片描述

50.25 Bar - Bar_datazoom_inside

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.days_attrs).add_yaxis("商家A", Faker.days_values, color=Faker.rand_color()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-DataZoom(inside)"),datazoom_opts=opts.DataZoomOpts(type_="inside"),).render("bar_datazoom_inside.html")
)

在这里插入图片描述

50.26 Bar - Bar_is_selected

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().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-默认取消显示某 Series")).render("bar_is_selected.html")
)

在这里插入图片描述

50.27 Bar - Bar_reversal_axis

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).reversal_axis().set_series_opts(label_opts=opts.LabelOpts(position="right")).set_global_opts(title_opts=opts.TitleOpts(title="Bar-翻转 XY 轴")).render("bar_reversal_axis.html")
)

在这里插入图片描述

50.28 Bar - Bar_markpoint_custom

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerx, y = Faker.choose(), Faker.values()
c = (Bar().add_xaxis(x).add_yaxis("商家A",y,markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(name="自定义标记点", coord=[x[2], y[2]], value=y[2])]),).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-MarkPoint(自定义)")).set_series_opts(label_opts=opts.LabelOpts(is_show=False)).render("bar_markpoint_custom.html")
)

在这里插入图片描述

50.29 Bar - Bar_base_with_animation

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar(init_opts=opts.InitOpts(animation_opts=opts.AnimationOpts(animation_delay=1000, animation_easing="elasticOut"))).add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-动画配置基本示例", subtitle="我是副标题")).render("bar_base_with_animation.html")
)

在这里插入图片描述

50.30 Bar - Bar_histogram

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values(), category_gap=0, color=Faker.rand_color()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-直方图")).render("bar_histogram.html")
)

在这里插入图片描述

50.31 Bar - Bar_markline_custom

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-MarkLine(自定义)")).set_series_opts(label_opts=opts.LabelOpts(is_show=False),markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(y=50, name="yAxis=50")]),).render("bar_markline_custom.html")
)

在这里插入图片描述

50.32 Bar - Bar_base

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题")).render("bar_base.html")
)

在这里插入图片描述

50.33 Bar - Bar_datazoom_both

链接

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Fakerc = (Bar().add_xaxis(Faker.days_attrs).add_yaxis("商家A", Faker.days_values, color=Faker.rand_color()).set_global_opts(title_opts=opts.TitleOpts(title="Bar-DataZoom(slider+inside)"),datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],).render("bar_datazoom_both.html")
)

在这里插入图片描述

51.Bar实践项目

51.1 Bar - Bar_markpoint_custom:add_yaxis()的markpoint_opts=opts.MarkPointOpts()会让set_series_opts()的markpoint_opts=opts.MarkPointOpts()失效

链接
链接

def Bar_markpoint_type2():x = ['河马', '蟒蛇', '老虎', '大象', '兔子', '熊猫', '狮子']y1 = [66, 39, 35, 85, 107, 126, 105]y2 = [89, 86, 116, 51, 137, 76, 146]c = (Bar().add_xaxis(x).add_yaxis("商家A", y1, gap="0%",category_gap="80%").add_yaxis("商家B", y2, gap="0%",category_gap="80%",markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(name="自定义标记点1", coord=[x[2], y2[2]], value=y2[2])]),)#.reversal_axis().set_global_opts(title_opts=opts.TitleOpts(title="Bar_markpoint_type2"),datazoom_opts=opts.DataZoomOpts(),).set_series_opts(label_opts=opts.LabelOpts(is_show=False),##### add_yaxis()的markpoint_opts=opts.MarkPointOpts()会让set_series_opts()的markpoint_opts=opts.MarkPointOpts()失效######markpoint_opts=opts.MarkPointOpts(#    data=[#        opts.MarkPointItem(type_="max", name="最大值"),#        opts.MarkPointItem(type_="min", name="最小值"),#        opts.MarkPointItem(type_="average", name="平均值"),#    ]#),markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="min", name="最小值"),opts.MarkLineItem(type_="max", name="最大值"),opts.MarkLineItem(type_="average", name="平均值"),]),)
)return c

在这里插入图片描述

51.2 Bar综合例子1

def Stack_bar_percent():list2 = [{"value": 50, "percent": 50 / (50 + 0)},{"value": 34, "percent": 34 / (34 + 37)},]list3 = [{"value": 0, "percent": 0 / (50 + 0)},{"value": 37, "percent": 37 / (34 + 37)},]list4 = [{"value": 50, "percent": 50 / (50 + 0)},{"value": 34, "percent": 34 / (34 + 37)},]list5 = [{"value": 0, "percent": 0 / (50 + 0)},{"value": 37, "percent": 37 / (34 + 37)},]c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT,bg_color={"type": "pattern", "image": JsCode("img"), "repeat": "no-repeat"})).add_xaxis(['2020','2021']).add_yaxis("火炬职院1-stack", list2, stack="stack1", category_gap="50%").add_yaxis("电子科大1", list3, stack="stack1", category_gap="50%",is_selected=False).add_yaxis("火炬职院2", list4, stack="stack0", category_gap="50%").add_yaxis("电子科大2", list5, stack="stack0", category_gap="50%").set_series_opts(label_opts=opts.LabelOpts(position="right",formatter=JsCode("function(x){return Number(x.data.percent * 100).toFixed() + '%';}"),)).set_global_opts(title_opts=TitleOpts(title='报名人数对比'),xaxis_opts=opts.AxisOpts(name='我是X轴',axislabel_opts=opts.LabelOpts(rotate=-15)),yaxis_opts=opts.AxisOpts(name='我是Y轴',axislabel_opts=opts.LabelOpts(formatter="{value} /人")),brush_opts=opts.BrushOpts(),datazoom_opts=opts.DataZoomOpts(orient="vertical"),))c.add_js_funcs("""var img = new Image(); img.src = 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fgdown.baidu.com%2Fimg%2F0%2F200_200%2F1c7d0637ca01803040e087fb44e47654.png&refer=http%3A%2F%2Fgdown.baidu.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1632878374&t=508cb059ea0f1889a532d817c67bc76b';""")return c

在这里插入图片描述

51.3 Bar综合例子2

def Bar_markpoint_type():color_function = """function (params) {if (params.value > 0 && params.value < 50) {return 'red';} else if (params.value > 50 && params.value < 100) {return 'blue';}return 'green';}"""x = ['河马', '蟒蛇', '老虎', '大象', '兔子', '熊猫', '狮子']y1 = [66, 39, 35, 85, 107, 126, 105]y2 = [89, 86, 116, 51, 137, 76, 146]c = (Bar().add_xaxis(x).add_yaxis("商家A", y1, gap="0%",category_gap="80%", itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function))).add_yaxis("商家B", y2, gap="0%",category_gap="80%",markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(name="自定义标记点1", coord=[x[2], y2[2]], value=y2[2])]),itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function)))#.reversal_axis().set_global_opts(title_opts=opts.TitleOpts(title="Bar-MarkPoint(指定类型)"),datazoom_opts=opts.DataZoomOpts(type_="inside"),).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="最小值"),#opts.MarkPointItem(type_="average", name="平均值"),]),markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="min", name="最小值"),opts.MarkLineItem(type_="max", name="最大值"),opts.MarkLineItem(type_="average", name="平均值"),]),)
)return c

在这里插入图片描述

51.4 Bar综合例子3

def Bar_markpoint_type2():x = ['河马', '蟒蛇', '老虎', '大象', '兔子', '熊猫', '狮子']y1 = [66, 39, 35, 85, 107, 126, 105]y2 = [89, 86, 116, 51, 137, 76, 146]c = (Bar().add_xaxis(x).add_yaxis("商家A", y1, gap="0%",category_gap="80%").add_yaxis("商家B", y2, gap="0%",category_gap="80%",markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(name="自定义标记点1", coord=[x[2], y2[2]], value=y2[2])]),)#.reversal_axis().set_global_opts(title_opts=opts.TitleOpts(title="Bar_markpoint_type2"),datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],).set_series_opts(label_opts=opts.LabelOpts(is_show=False),##### add_yaxis()的markpoint_opts=opts.MarkPointOpts()会让set_series_opts()的markpoint_opts=opts.MarkPointOpts()失效######markpoint_opts=opts.MarkPointOpts(#    data=[#        opts.MarkPointItem(type_="max", name="最大值"),#        opts.MarkPointItem(type_="min", name="最小值"),#        opts.MarkPointItem(type_="average", name="平均值"),#    ]#),markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="min", name="最小值"),opts.MarkLineItem(type_="max", name="最大值"),opts.MarkLineItem(type_="average", name="平均值"),opts.MarkLineItem(y=100, name="yAxis=100"),]),)
)return c

在这里插入图片描述

51.5 Bar综合例子4

def Bar_waterfall_plot_B():#x_data = [f"{str(i)}月" for i in range(1, 13)]x_data = ["1月期初","1月入职","1月离职","2月入职","2月离职","3月入职","3月离职","4月入职","4月离职","5月入职","5月离职","6月入职","6月离职"]y_total = ["-", 4131,4134,4134,4107,4107,4076,4076,4037,4037,4025,4025,4016]y_in =    [4131,22,  "-", 13,"-",  65,   "-", 69,  "-",84,  "-",  67, "-"]y_out =   ["-", "-", 19,  "-",40,  "-",  96,  "-", 108,"-",  96,  "-",76]bar = (Bar().add_xaxis(xaxis_data=x_data)# add_yaxis()的yaxis_data要变成y_axis.add_yaxis(series_name="",y_axis=y_total,stack="总量",itemstyle_opts=opts.ItemStyleOpts(color="rgba(0,0,0,0)"),).add_yaxis(series_name="入职", y_axis=y_in, stack="总量").add_yaxis(series_name="离职", y_axis=y_out, stack="总量").set_global_opts(title_opts=opts.TitleOpts(title="瀑布图:new"),xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=False),axislabel_opts=opts.LabelOpts(rotate=-45)),yaxis_opts=opts.AxisOpts(type_="value",axistick_opts=opts.AxisTickOpts(is_show=True),splitline_opts=opts.SplitLineOpts(is_show=True),# 增加坐标轴的刻度值最小值设定min_='3950'),))return bar

在这里插入图片描述

51.6 Bar综合例子5

def Mixed_bar_and_line_ZZ():x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]bar = (Bar(init_opts=opts.InitOpts(width="800px", height="400px")).add_xaxis(xaxis_data=x_data).add_yaxis(series_name="入职人数",y_axis=[22,13,65,69,84,67],label_opts=opts.LabelOpts(is_show=False),).add_yaxis(series_name="离职人数",y_axis=[19,40,96,108,96,76],label_opts=opts.LabelOpts(is_show=False),).extend_axis(yaxis=opts.AxisOpts(name="总人数",type_="value",min_=3500,max_=4200,interval=100,axislabel_opts=opts.LabelOpts(formatter="{value}"),)).set_global_opts(title_opts = opts.TitleOpts(title='ZZ图表'),tooltip_opts=opts.TooltipOpts(is_show=True, trigger="axis", axis_pointer_type="cross"),xaxis_opts=opts.AxisOpts(name="月份",name_location = "center",type_="category",axispointer_opts=opts.AxisPointerOpts(is_show=True, type_="shadow"),),yaxis_opts=opts.AxisOpts(name="变动人力",type_="value",min_=0,#max_=100,interval=10,axislabel_opts=opts.LabelOpts(formatter="{value}"),axistick_opts=opts.AxisTickOpts(is_show=True),splitline_opts=opts.SplitLineOpts(is_show=True),),))line = (Line().add_xaxis(xaxis_data=x_data).add_yaxis(series_name="在职人数",yaxis_index=1,y_axis=[4131, 4144, 4105, 4079, 4058, 4065],label_opts=opts.LabelOpts(is_show=False),))bar.overlap(line)return bar

在这里插入图片描述

51.7 Bar综合例子6:看多y轴的要点

注意看多y轴的要点

def Mixed_bar_and_line():x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]bar = (Bar(init_opts=opts.InitOpts(width="900px", height="400px")).add_xaxis(xaxis_data=x_data).add_yaxis(series_name="蒸发量",y_axis=[2.0,4.9,7.0,23.2,25.6,76.7,135.6,162.2,32.6,20.0,6.4,3.3,],label_opts=opts.LabelOpts(is_show=False),).add_yaxis(series_name="降水量",y_axis=[2.6,5.9,9.0,26.4,28.7,70.7,175.6,182.2,48.7,18.8,6.0,2.3,],label_opts=opts.LabelOpts(is_show=False),).extend_axis(yaxis=opts.AxisOpts(name="温度",type_="value",min_=0,max_=25,interval=5,#多y轴的要点position="right",axislabel_opts=opts.LabelOpts(formatter="{value} °C"),)).extend_axis(yaxis=opts.AxisOpts(name="温度2",type_="value",min_=0,max_=25,interval=5,#多y轴的要点offset=40,position="right",axislabel_opts=opts.LabelOpts(formatter="{value} °C"),)).set_global_opts(title_opts = opts.TitleOpts(title='降水量图表'),tooltip_opts=opts.TooltipOpts(is_show=True, trigger="axis", axis_pointer_type="cross"),xaxis_opts=opts.AxisOpts(name="月份",name_location = "center",type_="category",axispointer_opts=opts.AxisPointerOpts(is_show=True, type_="shadow"),),yaxis_opts=opts.AxisOpts(name="降水量",type_="value",min_=0,max_=250,interval=50,#多y轴的要点position="left",axislabel_opts=opts.LabelOpts(formatter="{value} ml"),axistick_opts=opts.AxisTickOpts(is_show=True),splitline_opts=opts.SplitLineOpts(is_show=True),),))line = (Line().add_xaxis(xaxis_data=x_data).add_yaxis(series_name="平均温度",yaxis_index=1,y_axis=[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],label_opts=opts.LabelOpts(is_show=False),))bar.overlap(line)return bar

在这里插入图片描述

51.8 Bar综合例子7:append()来添加opts.BarItem()以区别各条的颜色

  • 最简单的例子
def Bar_histogram_season():x = ['哈士奇', '萨摩耶', '泰迪', '金毛', '牧羊犬', '吉娃娃', '柯基', '河马', '蟒蛇', '老虎', '大象', '兔子', '熊猫', '狮子']z = [10,20,30,40,50,60,70,80,90,100,110,100,90,80]c = (Bar().add_xaxis(x).add_yaxis("series0", z, category_gap=0).set_global_opts(title_opts=opts.TitleOpts(title="Bar-直方图"))#.render("bar_histogram_color.html"))return c

在这里插入图片描述

  • 复杂一点的例子

def Bar_histogram_season2():x = ['哈士奇', '萨摩耶', '泰迪', '金毛', '牧羊犬', '吉娃娃', '柯基', '河马', '蟒蛇', '老虎', '大象', '兔子', '熊猫', '狮子']z = [10,20,30,40,50,60,70,80,90,100,110,100,90,80]y = []for idx, ivalue in enumerate(z):if ivalue > 80:y.append(opts.BarItem(name=x[idx],value=ivalue,itemstyle_opts=opts.ItemStyleOpts(color="#749f83"),))else:y.append(opts.BarItem(name=x[idx],value=ivalue,itemstyle_opts=opts.ItemStyleOpts(color="#d48265"),))c = (Bar().add_xaxis(x).add_yaxis("series0", y, category_gap=0).set_global_opts(title_opts=opts.TitleOpts(title="Bar-直方图"))#.render("bar_histogram_color.html"))return c

在这里插入图片描述

这篇关于Pyecharts笔记(2)-直角坐标系图表(Bar)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/333910

相关文章

C#图表开发之Chart详解

《C#图表开发之Chart详解》C#中的Chart控件用于开发图表功能,具有Series和ChartArea两个重要属性,Series属性是SeriesCollection类型,包含多个Series对... 目录OverviChina编程ewSeries类总结OverviewC#中,开发图表功能的控件是Char

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi