mirror of
https://github.com/pyecharts/pyecharts.git
synced 2026-01-18 16:52:31 +00:00
* Format: code * Remove: #coding=utf-8 * Add: 新增示例以及数据 json 文件 * Update: 移除 List 使用 Sequence 代替,移除 instance 判断 * Update: 修复 Geo Lines 线条丢失的问题 * Remove: 移除 Mark* data 类型判断 * Update: js_functions/bmap_js_funtions 分开处理 * Update: 解决 Grid 图 title 不为 List 的问题 * Update: self.color 对外暴露 * Test: 完善测试 * Update: 更新测试和示例 * Fix: test * Fix: 修复 Grid 不能正常渲染主题以及标题的问题 * Add: Bar 图新增 gap 参数 * Add: example * Update: 百度地图 ak 保存至环境变量中
148 lines
4.3 KiB
Python
148 lines
4.3 KiB
Python
from example.commons import Collector, Faker
|
|
from pyecharts import options as opts
|
|
from pyecharts.charts import Bar, Grid, Line, Page, Scatter
|
|
|
|
C = Collector()
|
|
|
|
|
|
@C.funcs
|
|
def grid_vertical() -> Grid:
|
|
bar = (
|
|
Bar()
|
|
.add_xaxis(Faker.choose())
|
|
.add_yaxis("商家A", Faker.values())
|
|
.add_yaxis("商家B", Faker.values())
|
|
.set_global_opts(title_opts=opts.TitleOpts(title="Grid-Bar"))
|
|
)
|
|
line = (
|
|
Line()
|
|
.add_xaxis(Faker.choose())
|
|
.add_yaxis("商家A", Faker.values())
|
|
.add_yaxis("商家B", Faker.values())
|
|
.set_global_opts(
|
|
title_opts=opts.TitleOpts(title="Grid-Line", pos_top="48%"),
|
|
legend_opts=opts.LegendOpts(pos_top="48%"),
|
|
)
|
|
)
|
|
|
|
grid = (
|
|
Grid()
|
|
.add(bar, grid_opts=opts.GridOpts(pos_bottom="60%"))
|
|
.add(line, grid_opts=opts.GridOpts(pos_top="60%"))
|
|
)
|
|
return grid
|
|
|
|
|
|
@C.funcs
|
|
def grid_horizontal() -> Grid:
|
|
scatter = (
|
|
Scatter()
|
|
.add_xaxis(Faker.choose())
|
|
.add_yaxis("商家A", Faker.values())
|
|
.add_yaxis("商家B", Faker.values())
|
|
.set_global_opts(
|
|
title_opts=opts.TitleOpts(title="Grid-Scatter"),
|
|
legend_opts=opts.LegendOpts(pos_left="20%"),
|
|
)
|
|
)
|
|
line = (
|
|
Line()
|
|
.add_xaxis(Faker.choose())
|
|
.add_yaxis("商家A", Faker.values())
|
|
.add_yaxis("商家B", Faker.values())
|
|
.set_global_opts(
|
|
title_opts=opts.TitleOpts(title="Grid-Line", pos_right="5%"),
|
|
legend_opts=opts.LegendOpts(pos_right="20%"),
|
|
)
|
|
)
|
|
|
|
grid = (
|
|
Grid()
|
|
.add(scatter, grid_opts=opts.GridOpts(pos_left="55%"))
|
|
.add(line, grid_opts=opts.GridOpts(pos_right="55%"))
|
|
)
|
|
return grid
|
|
|
|
|
|
@C.funcs
|
|
def grid_mutil_yaxis() -> Grid:
|
|
x_data = ["{}月".format(i) for i in range(1, 13)]
|
|
bar = (
|
|
Bar()
|
|
.add_xaxis(x_data)
|
|
.add_yaxis(
|
|
"蒸发量",
|
|
[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
|
|
yaxis_index=0,
|
|
color="#d14a61",
|
|
)
|
|
.add_yaxis(
|
|
"降水量",
|
|
[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
|
|
yaxis_index=1,
|
|
color="#5793f3",
|
|
)
|
|
.extend_axis(
|
|
yaxis=opts.AxisOpts(
|
|
name="蒸发量",
|
|
type_="value",
|
|
min_=0,
|
|
max_=250,
|
|
position="right",
|
|
axisline_opts=opts.AxisLineOpts(
|
|
linestyle_opts=opts.LineStyleOpts(color="#d14a61")
|
|
),
|
|
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="#675bba")
|
|
),
|
|
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(
|
|
name="降水量",
|
|
min_=0,
|
|
max_=250,
|
|
position="right",
|
|
offset=80,
|
|
axisline_opts=opts.AxisLineOpts(
|
|
linestyle_opts=opts.LineStyleOpts(color="#5793f3")
|
|
),
|
|
axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
|
|
),
|
|
title_opts=opts.TitleOpts(title="Grid-多 Y 轴示例"),
|
|
tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
|
|
)
|
|
)
|
|
|
|
line = (
|
|
Line()
|
|
.add_xaxis(x_data)
|
|
.add_yaxis(
|
|
"平均温度",
|
|
[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],
|
|
yaxis_index=2,
|
|
color="#675bba",
|
|
label_opts=opts.LabelOpts(is_show=False),
|
|
)
|
|
)
|
|
|
|
bar.overlap(line)
|
|
return Grid().add(bar, opts.GridOpts(pos_left="5%", pos_right="20%"))
|
|
|
|
|
|
Page().add(*[fn() for fn, _ in C.charts]).render()
|