代码和结果如下;我希望在右边的图像t=5
是在左边的图像,所有的view
-所以,在相同的绝对位置的位置文本,即相同的相对于 * 图 *。
Python的Plotly允许通过fig.update_layout(title={'text': 't=5'})
实现这一点。text(, 'Units', 'normalized')
和'Units', 'pixels'
并不总是有效。
这可以做到吗?
x1c 0d1x的数据
[X, Y, Z] = ndgrid(linspace(-8,8,40), linspace(-8,8,40), linspace(-8,8,40));
D = X.*Y.*Z;
D = D * (100 / max(D, [], 'all'));
for ii = 10:10:100
patch(isosurface(D, ii, D), 'FaceColor', 'interp', 'LineStyle', 'none')
end
text(30, 20, -10, 't=5')
view([3 1 1])
字符串
1条答案
按热度按时间dfuffjeb1#
一个解决方案是为
text
对象使用'normalized'
单位。相对于轴归一化。轴的左下角Map到
(0,0)
,右上角Map到(1,1)
。显然,这里所指的轴不是图形的“数学”(3D)轴,而是图中发生绘图的矩形的“画布”(2D)轴。
所以你可以
1.创建
text
对象,使用默认的('data'
)单位,并将其分配给变量;1.设置
view
(这会影响'data'
单位和'normalized'
单位之间的关系);然后1.转换为
'normalized'
单位,使用步骤1中的变量。这样,代码的最后几行变为
字符串
示例
下面的第二张图是通过使用“旋转3D”按钮旋转第一张图获得的。文本相对于窗口处于相同的位置:
x1c 0d1x的数据
或者看这个动画。当图形旋转时,文本保持不变。
的