首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >twinx()和axhline

twinx()和axhline
EN

Stack Overflow用户
提问于 2013-03-20 23:05:14
回答 2查看 2K关注 0票数 4

在twinx()之后使用axhline时,绘制的水平线仍然遵循第一个y轴的坐标。

关于如何使其缩放到第二个y轴,有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2013-03-21 02:13:33

您可以从Axes对象调用axhline方法,如下面的示例所示,或者使用sca设置当前轴。

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 10, 0.1)
y1 = np.sin(x)
y2 = 2.0 * np.cos(x)

fig = plt.figure()
ax1 = plt.subplot(111)
ax2 = ax1.twinx()

ax1.axhline( 0.5, 0.1, 0.5, color='r', lw=3)
ax2.axhline(-0.5, 0.5, 0.9, color='b', lw=3)

ax1.plot(x, y1, 'r', lw=2)
ax2.plot(x, y2, 'b', lw=2)

plt.show()
票数 2
EN

Stack Overflow用户

发布于 2018-10-17 20:16:37

如果您不能访问twinx()的返回值(例如,当它被Pandas调用时),您可以使用axes对象的left_axright_ax属性来访问左轴和右轴。

其中只有一个会出现,因为每个轴都链接到另一个轴。

  • 如果您有指向左轴的句柄,则其right_ax属性将指向链接的右轴。
  • 如果您具有指向右轴的句柄,则其left_ax属性将指向链接的左轴。

例如:

代码语言:javascript
复制
df = pandas.DataFrame({'d1': numpy.random.rand(10), 
                       'd2': numpy.random.rand(10) * 10})
ax = df.plot(secondary_y=['d2'])  # returns the left axis
ax.axhline(y=0.5, alpha=0.5)      # draw a line from it
ax.right_ax.axhline(y=10, color="red", alpha=0.5)  # draw a line from the right axis

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15527288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档