高版本pyecharts中page.render 如何启动到Page.save_resize_html 作用
时间: 2024-03-24 20:38:16 浏览: 74
在高版本的Pyecharts中,`page.render`方法已经被废弃,取而代之的是`render`方法。同时,Pyecharts中也没有提供`Page.save_resize_html`函数,但我们可以使用Puppeteer自带的`page.screenshot`方法和`sharp`库来实现类似的功能。具体实现如下:
```python
import asyncio
import pyppeteer
import shutil
from PIL import Image
from io import BytesIO
import os
async def save_resize_html(page, path, width, height):
"""
保存并调整页面截图的大小
"""
# 使用page.screenshot方法截图
screenshot = await page.screenshot(fullPage=True)
# 将截图转换为PIL.Image对象
image = Image.open(BytesIO(screenshot))
# 调整图片大小
resized_image = image.resize((width, height))
# 保存调整后的图片
with open(path, 'wb') as f:
resized_image.save(f, format='PNG')
async def main():
# 初始化浏览器
browser = await pyppeteer.launch()
page = await browser.newPage()
# 设置页面大小
await page.setViewport({'width': 800, 'height': 600})
# 加载Pyecharts生成的图表
chart = Line()
chart.add_xaxis(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"])
chart.add_yaxis("A", [1, 2, 3, 4, 5, 6, 7])
await page.setContent(chart.render_embed())
# 保存并调整页面截图的大小
await save_resize_html(page, './resized.png', 800, 600)
# 关闭浏览器
await browser.close()
if __name__ == '__main__':
asyncio.get_event_loop().run_until_complete(main())
```
在上述代码中,我们首先使用`pyppeteer`库启动一个浏览器,并创建一个新的页面。然后,我们设置页面大小,并使用`page.setContent`方法加载Pyecharts生成的图表。接着,我们使用自定义的`save_resize_html`函数截取页面截图,并调整其大小,并将调整后的图片保存到本地。最后,我们关闭浏览器。
阅读全文
相关推荐


















