首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Plotly Python可视化SVG

使用Plotly Python可视化SVG
EN

Stack Overflow用户
提问于 2021-09-20 16:49:19
回答 1查看 157关注 0票数 0

我正在尝试使用px.imshow()在绘图图上可视化图像。是否可以为此传入一个svg而不是一个图像数组?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-09-21 14:31:53

  • 的第一步是将其转换为px.imshow()所需的格式。我使用了cairosvg (这个库安装起来有些困难)
  • 使用了为动画创建帧的方法,也许可以将图像组合在一起,以便可以从3D数组

完成

代码语言:javascript
复制
import numpy as np
import requests, io
import PIL
import cairosvg
import plotly.express as px
import plotly.graph_objects as go

svg_url = "https://logincdn.msauth.net/16.000.28611.4/content/images/microsoft_logo_ee5c8d9fb6248c938fd0dc19370e90bd.svg"
res = requests.get(svg_url)
svgs = [
    '<svg width="100" height="100"><circle cx="20" cy="20" r="10" stroke="black" stroke-width="4" fill="red" /></svg>',
    '<svg width="100" height="100"><circle cx="40" cy="40" r="20" stroke="black" stroke-width="4" fill="red" /></svg>',
    '<svg width="100" height="100"><circle cx="60" cy="60" r="30" stroke="black" stroke-width="4" fill="red" /></svg>',
]

im = [
    PIL.Image.open(io.BytesIO(cairosvg.svg2png(bytestring=svg))).convert("RGBA")
    for svg in svgs
]
go.Figure(data=px.imshow(im[0]).data,
    frames=[go.Frame(data=px.imshow(im).data) for im in im]).update_layout(
    updatemenus=[
        dict(
            type="buttons", buttons=[dict(label="Play", method="animate", args=[None])]
        )
    ]
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69258171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档