我正在尝试使用px.imshow()在绘图图上可视化图像。是否可以为此传入一个svg而不是一个图像数组?
提前谢谢。
发布于 2021-09-21 14:31:53
px.imshow()所需的格式。我使用了cairosvg (这个库安装起来有些困难)完成
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])]
)
]
)https://stackoverflow.com/questions/69258171
复制相似问题