gpt4 book ai didi

python - 以数据单元为单位指定标记大小以进行绘图

转载 作者:行者123 更新时间:2023-12-04 15:29:26 25 4
gpt4 key购买 nike

我是从 matplotlib 转过来的至 plotly主要用于绘制 2D/3D 中的平滑动画。我想绘制由多个圆/球体组成的机器人的运动。
机器人的不同 body 部位有不同的大小,圆圈需要准确地表示。plotly有办法吗?以数据单位指定标记的大小?
例如,我想绘制一个 5m x 5m (x5m) 的截面,其中半径为 0.1m 的圆/球体沿着不同的轨迹移动。
在 matplotlib 中,我知道两种选择。一种是使用补丁(matplotlib.patches.Circle)。第二个选项是通过考虑 dpi ( See the answers to this question for matplotlib ) 来绘制点并正确缩放其标记大小。
A) 是否可以在 plotly (3D) 中为形状设置动画?
或者
B)有没有办法以数据单位指定标记的大小或缩放sizeref属性正确吗?

# Point with radius 2 (approx.)
from plotly.offline import plot
import plotly.graph_objs as go

trace = go.Scatter(x=[4], y=[4],
mode='markers',
marker={'size': 260, 'sizeref': 1}) # ???

layout = dict(yaxis=dict(range=[0, 10]),
xaxis=dict(range=[0, 10]))

fig = dict(data=[trace], layout=layout)
plot(fig, image_height=1000, image_width=1000)
缩放 markersize 的问题是图像只有在您不放大或缩小时才是正确的,因为标记大小保持不变。
因此,更简洁的方法是直接以数据单位指定圆圈的大小。

最佳答案

画圆圈可能是你最好的选择。更新中 markersize每次调整大小都会有点麻烦。这是您可以尝试绘制圆圈的方法

from plotly.offline import plot
import plotly.graph_objects as go

xy = [[4, 4], [1, 5], [2, 2]]
r = 0.1

fig = go.Figure()
kwargs = {'type': 'circle', 'xref': 'x', 'yref': 'y', 'fillcolor': 'black'}
points = [go.layout.Shape(x0=x-r, y0=y-r, x1=x+r, y1=y+r, **kwargs) for x, y in xy]
fig.update_layout(shapes=points)

fig.update_xaxes(range=[0, 10])
fig.update_yaxes(range=[0, 10])
fig.update_layout(width=1000, height=1000)
plot(fig)

默认(第一个)和缩放(第二个) View :

关于python - 以数据单元为单位指定标记大小以进行绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53217404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com