Matplotlib面片椭圆角查询 [英] Matplotlib patches ellipse angle query
本文介绍了Matplotlib面片椭圆角查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用matplotlib面片,并尝试以特定角度绘制椭圆。根据下面的代码,我认为我绘制的直线应该与椭圆的长轴成完全相同的角度(逆时针方向的角度,其中0度是水平的)。
不幸的是,我的声誉不足以发布图像,但如果运行代码,您可以从图中看到它们似乎不一致。(如果您更改绘图的大小,您可以使其看起来几乎是这样,但无论您如何拉伸轴,它们肯定都应该对齐?)
有人能解释一下为什么会这样吗?我怎样才能补救它?
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import math
m = -1.34756097561
c = 337.518292683
angle_rad = np.arctan(m)
angle_deg = angle_rad*(180/math.pi)
major_ax = 5.0
minor_ax = 3.5
center = np.array([133.26666667, 157.93333333])
patch = mpatches.Ellipse(center, major_ax, minor_ax, angle_deg, fc='none', ls='solid', ec='g', lw='3.')
x = np.arange(131, 137)
fig, ax = plt.subplots()
line1 = plt.plot(x, m*x + c)
ax.add_patch(patch)
ax.set_xlim(130.5, 135.5)
ax.set_ylim(155.5, 160.5)
plt.plot(center[0], center[1], 'go')
plt.show()
推荐答案
当您的代码运行时(几乎,lw='3.'
中有一个输入错误,应该是lw=3.
),我得到:
我只做了一个小更改(将纵横比更改为1:1),以90°的角度显示这条线与椭圆相交。
然而,在屏幕上,中心点可能看起来不在正确的位置。上图是使用savefig
拍摄的,但为了进行比较,屏幕截图完全相同:
中心点位置不正确。这是后台的一个功能(BUG)。(在我的例子中,后端是MacOSX,我不知道这是否会影响其他后端。)
这篇关于Matplotlib面片椭圆角查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文