Matplotlib面片椭圆角查询 [英] Matplotlib patches ellipse angle query

查看:0
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆