python - 如何使用matplotlib制作第二个垂直轴,左侧有标签?
问题描述
我试图用 python matplotlib 制作一个带有两个辅助垂直轴(y 轴)的图表。
我正在使用twinx()
方法,其中两个新轴之一具有默认行为(右侧的标签),另一个具有左侧的标签,如下图所示的 tan(x) 示例(在特定软件中创建) )。
有没有简单的方法可以做到这一点?我不限于使用该twinx()
方法,如果有另一种方法
解决方案
这是一种添加两个辅助 y 轴的方法,一个向内:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(.5, 10, 1000)
y1 = np.cos(x)
y2 = np.sin(2 * x)
y3 = np.clip(np.tan(x * .6), -75, 75)
fig, ax1 = plt.subplots()
color = 'dodgerblue'
ax1.set_ylabel('$cos(x)$', color=color)
ax1.plot(x, y1, color=color)
ax1.tick_params(axis='y', labelcolor=color)
ax2 = ax1.twinx()
color = 'limegreen'
ax2.set_ylabel('$sin(2 x)$', color=color)
ax2.plot(x, y2, color=color)
ax2.tick_params(axis="y", labelcolor=color)
ax3 = ax1.twinx()
color = 'crimson'
ax3.set_ylabel('$tan(.6 x)$', color=color, labelpad=-40)
ax3.plot(x, y3, color=color)
ax3.tick_params(axis="y", labelcolor=color, direction="in", pad=-5)
plt.setp(ax3.get_yticklabels(), ha="right")
ax1.set_xlim(0, 12)
fig.tight_layout()
plt.show()
推荐阅读
- c++ - 出于某种原因,将 48 添加到此变量中?
- pine-script - 如何在 Pine Script 中计算或记忆最后一笔交易的盈亏状态?
- node.js - TypeError:车把不是函数
- node.js - Heroku Node.js Discord Bot 未启动
- python - 如何在 python 中但在 php 中从文件读取中产生类似的输出
- python - 如何使用 beautifulsoup 从多个页面中抓取数据
- python - 如何使用 python 使用单独的名称列表文件从文本中删除名称
- python - 我需要使用 dom python 更新 xml 文件中的多个元素
- python - Williams p+1 整数分解
- python - 如何在二进制数组中找到相邻像素的数量