matplotlib - 在 Julia 中使用 PyPlot 绕特定点旋转矩形

标签 matplotlib plot julia

我正在尝试使用 matplotlib 进行绘图,围绕 Julia 中的特定点绘制并旋转矩形。然而,似乎我必须结合两个转换才能实现这一目标,但我不知道该怎么做。

using PyPlot
using PyCall
@pyimport matplotlib.patches as patches
@pyimport matplotlib as mpl

fig = figure(1)
ax = gca()
axis([-4,4,-4,4])

# specify non-rotated rectangle
length = 4
width = 2
rect = patches.Rectangle([1,1],length,width,color="blue",alpha=0.3)
rect_rotated = patches.Rectangle([1,1],length,width,color="red",alpha=0.3)
 # rotate about the following point
point = [3,2]

# try to rotate rectangle using matplotlib's transformations
t1 = mpl.transforms[:Affine2D]()
t1[:rotate_deg_around](point[1],point[2], -30)

# apparently one also has to transform between data coordinate system and display coordinate system
t2 = ax[:transData]

为了结合这些转换,我现在想做的事情:

t3 = t1 + t2
rect_rotated[:set_transform](t3)
ax[:add_patch](rect)
ax[:add_patch](rect_rotated)

但是,我收到以下错误

ERROR: LoadError: MethodError: no method matching +(::PyCall.PyObject, ::PyCall.PyObject)

我认为这是因为 PyPlot-Wrapper 不支持“+”号来组合底层转换。

有谁知道如何实现这个功能吗?谢谢

最佳答案

Python 使用第一个对象的方法实现运算符重载,例如t3 = t1 + t2 相当于 t3 = t1.__add__(t2)

在 Julia 中,这变成了 t3 = t1[:__add__](t2)

关于matplotlib - 在 Julia 中使用 PyPlot 绕特定点旋转矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41512252/

相关文章:

r - qqline 没有给出我预期的行

julia - 如何根据函数和参数类型获取julia代码的表达式?

function - 如何使用另一个 Julia 文件中的函数?

python - 使用极坐标法追踪相位、轴和地球方向的椭圆轨道

python - Matplotlib 标签重叠

python - Matplotlib 绘图显示为空白

arrays - Julia:如何从数组中选择整行

python - 维恩3 : How to reposition circles and labels?

python - 将 basemap 颜色条中的第一种颜色设置为灰色不起作用

qt - 加速二维绘图