pyecharts中在一个画布中绘制两个图表(一个是柱形图,一个是折线图)并且两个的横坐标相同,纵坐标一左一右
时间: 2024-02-13 15:03:56 浏览: 78
可以使用 Pyecharts 中的 Grid(网格)组件来实现在一个画布中绘制两个图表的效果,其中柱形图和折线图分别对应网格中的左边和右边。
以下是一个示例代码:
```python
from pyecharts import options as opts
from pyecharts.charts import Bar, Line, Grid
# 创建柱形图
bar = (
Bar()
.add_xaxis(['A', 'B', 'C', 'D', 'E'])
.add_yaxis('柱形图', [5, 20, 36, 10, 75])
.set_global_opts(title_opts=opts.TitleOpts(title='柱形图'))
)
# 创建折线图
line = (
Line()
.add_xaxis(['A', 'B', 'C', 'D', 'E'])
.add_yaxis('折线图', [15, 30, 46, 20, 95], yaxis_index=1)
.set_global_opts(title_opts=opts.TitleOpts(title='折线图'))
)
# 使用网格组件将柱形图和折线图合并到一个画布中
grid = (
Grid()
.add(bar, grid_opts=opts.GridOpts(pos_left='5%', pos_right='50%'))
.add(line, grid_opts=opts.GridOpts(pos_left='55%', pos_right='5%'))
)
# 渲染图表
grid.render('bar_and_line.html')
```
上述代码中,首先创建了一个柱形图和一个折线图。柱形图使用 `Bar` 类创建,折线图使用 `Line` 类创建,它们都通过 `add_xaxis` 和 `add_yaxis` 方法设置了横坐标和纵坐标的数据。需要注意的是,折线图的纵坐标需要通过 `yaxis_index` 参数指定为右边的纵坐标轴。
接下来使用 `Grid` 类创建了一个网格组件,通过 `add` 方法将柱形图和折线图添加到网格中,设置了两个网格的位置,其中柱形图占据了左边的网格,折线图占据了右边的网格。
最后调用 `render` 方法将图表渲染为 HTML 文件。
阅读全文