【发布时间】:2020-01-08 23:48:23
【问题描述】:
所以,我正在尝试绘制一些我拥有的数据,并在其之上绘制一个具有给定均值和协方差的置信椭圆。我对 Python 很陌生,但我认为将其可视化要比在 Java 中更容易(我在其中计算了使用的这些值)。
我现在遇到的问题是我根本无法旋转我正在绘制的椭圆而不扭曲它。我不完全确定是否确实如此,但我认为这是因为轴上的比例差别很大(x 从 0 到 6,y 从 40 到 100)。我再次猜测,但我想旋转不会缩放高度(显然设置为适合 y 轴从 40 到 100)所以它对于我的短 x 轴来说太长了。
我的问题:有没有更好的方法来做到这一点,或者在旋转后缩放椭圆使其再次适合?由于我对 Python 不太了解,所以我只是通过不同的教程来看看是什么让我快速获得结果。不确定这是否是“正确”的开始方式。然而,我所知道的是,我看到的所有示例都有类似比例的轴,因此我无法找到解决问题的适当方法。
这只是代码的一部分,实际数据不包括在内,但它仍然应该可以复制粘贴椭圆,所以如果你改变旋转角度,你们可以明白我的意思(这里的 45示例)。
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse
meanX = 2.0374
meanY = 54.4897
secondLongest = 0.0700
longest = 33.7679
ax = plt.subplot(111)
plt.axis([0, 6, 40, 100])
#plt.plot(duration, waitperiod, "rx")
plt.xlabel("Duration")
plt.ylabel("Time between eruptions")
#if rotation is set to 0, it works perfectly fine but I want a different angle
ellipse = Ellipse((meanX, meanY), 2*np.sqrt(5.991*secondLongest), 2*np.sqrt(5.991*longest), 45)
ax.add_artist(ellipse)
plt.show()
【问题讨论】:
标签: python numpy matplotlib plot