from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeType
c = (
Bar({"theme": ThemeType.MACARONS})
.add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])
.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
.add_yaxis("商家B", [15, 6, 45, 20, 35, 66])
.set_global_opts(
#分別設置X軸和Y軸
yaxis_opts=opts.AxisOpts(name = '我是Y軸'),
xaxis_opts=opts.AxisOpts(
# 坐標軸類型。可選:
# 'value': 數值軸,適用於連續數據。
# 'category': 類目軸,適用於離散的類目數據,為該類型時必須通過 data 設置類目數據。
# 'time': 時間軸,適用於連續的時序數據,與數值軸相比時間軸帶有時間的格式化,在刻度計算上也有所不同,
# 例如會根據跨度的范圍來決定使用月,星期,日還是小時范圍的刻度。
# 'log' 對數軸。適用於對數數據。
type_ = 'category',
# 坐標軸名稱。
name = '我是X軸',
# 是否顯示 x 軸。
is_show = True,
# 只在數值軸中(type: 'value')有效。
# 是否是脫離 0 值比例。設置成 true 后坐標刻度不會強制包含零刻度。在雙數值軸的散點圖中比較有用。
# 在設置 min 和 max 之后該配置項無效。
is_scale = False,
# 是否反向坐標軸。
is_inverse = False,
# 坐標軸名稱顯示位置。可選:默認end
# 'start', 'middle' 或者 'center','end'
name_location = 'center',
# 坐標軸名稱與軸線之間的距離。
name_gap = 35,
# 坐標軸名字旋轉,角度值。
name_rotate = 30, #旋轉30度
# 強制設置坐標軸分割間隔: Optional[Numeric]
# 因為 splitNumber 是預估的值,實際根據策略計算出來的刻度可能無法達到想要的效果,
# 這時候可以使用 interval 配合 min、max 強制設定刻度划分,一般不建議使用。
# 無法在類目軸中使用。在時間軸(type: 'time')中需要傳時間戳,在對數軸(type: 'log')中需要傳指數值。
interval= None,
# x 軸所在的 grid 的索引,默認位於第一個 grid。
grid_index = 0,
# x 軸的位置。可選:
# 'top', 'bottom'
# 默認 grid 中的第一個 x 軸在 grid 的下方('bottom'),第二個 x 軸視第一個 x 軸的位置放在另一側。
position = 'bottom',
# Y 軸相對於默認位置的偏移,在相同的 position 上有多個 Y 軸的時候有用。
offset = 0,
# 坐標軸的分割段數,需要注意的是這個分割段數只是個預估值,最后實際顯示的段數會在這個基礎上根據分割后坐標軸刻度顯示的易讀程度作調整。
# 默認值是 5
split_number = 5,
# 坐標軸兩邊留白策略,類目軸和非類目軸的設置和表現不一樣。Union[str, bool, None]
# 類目軸中 boundaryGap 可以配置為 true 和 false。默認為 true,這時候刻度只是作為分隔線,
# 標簽和數據點都會在兩個刻度之間的帶(band)中間。
# 非類目軸,包括時間,數值,對數軸,boundaryGap是一個兩個值的數組,分別表示數據最小值和最大值的延伸范圍
# 可以直接設置數值或者相對的百分比,在設置 min 和 max 后無效。 示例:boundaryGap: ['20%', '20%']
boundary_gap = None,
# 坐標軸刻度最小值。Union[Numeric, str, None]
# 可以設置成特殊值 'dataMin',此時取數據在該軸上的最小值作為最小刻度。
# 不設置時會自動計算最小值保證坐標軸刻度的均勻分布。
# 在類目軸中,也可以設置為類目的序數(如類目軸 data: ['類A', '類B', '類C'] 中,序數 2 表示 '類C'。
# 也可以設置為負數,如 -3)。
min_ = None,
# 坐標軸刻度最大值。Union[Numeric, str, None]
# 可以設置成特殊值 'dataMax',此時取數據在該軸上的最大值作為最大刻度。
# 不設置時會自動計算最大值保證坐標軸刻度的均勻分布。
# 在類目軸中,也可以設置為類目的序數(如類目軸 data: ['類A', '類B', '類C'] 中,序數 2 表示 '類C'。
# 也可以設置為負數,如 -3)。
max_ = None,
# 自動計算的坐標軸最小間隔大小。
# 例如可以設置成1保證坐標軸分割刻度顯示成整數。
# 默認值是 0
min_interval = 0,
# 自動計算的坐標軸最大間隔大小。
# 例如,在時間軸((type: 'time'))可以設置成 3600 * 24 * 1000 保證坐標軸分割刻度最大為一天。
max_interval = None,
# 坐標軸刻度線配置項,參考 `global_options.AxisLineOpts`
axisline_opts: Union[AxisLineOpts, dict, None] = None,
# 坐標軸刻度配置項,參考 `global_options.AxisTickOpts`
axistick_opts=opts.AxisTickOpts(is_show=True),
# 坐標軸標簽配置項,參考 `series_options.LabelOpts`
axislabel_opts: Union[LabelOpts, dict, None] = None,
# 坐標軸指示器配置項,參考 `global_options.AxisPointerOpts`
axispointer_opts: Union[AxisPointerOpts, dict, None] = None,
# 坐標軸名稱的文字樣式,參考 `series_options.TextStyleOpts`
name_textstyle_opts: Union[TextStyleOpts, dict, None] = None,
# 分割區域配置項,參考 `series_options.SplitAreaOpts`
splitarea_opts: Union[SplitAreaOpts, dict, None] = None,
# 分割線配置項,參考 `series_options.SplitLineOpts`
splitline_opts: Union[SplitLineOpts, dict] = SplitLineOpts(),
))
.render("C:/bar_base_.html")
)