python - python matplotlib,第二个 y 轴与第一个
问题描述
我在 CSV 文件中有海拔压力和温度。
现在我想绘制温度(x 轴)与高度(y 轴)的关系。在第二个 Y 轴上,相应的压力应该以倒置的对数轴显示。 类似于这里
这是到目前为止的代码:
import matplotlib.pyplot as plt
from numpy import genfromtxt
import matplotlib.ticker
from matplotlib.ticker import FuncFormatter
data = genfromtxt("data.csv", delimiter=";")
# presure (hPa), altitude (m)
altitude, pressure, temperatur = data.T
fig, ax = plt.subplots()
ax2 = ax.twinx()
ax.get_shared_y_axes().join(ax,ax2)
ax.plot(temperatur, altitude, label='Temperature')
ax.set_xlabel('°C')
ax.set_ylabel('m')
ax.set_ylim(0, 15000)
ax2.yaxis.set_major_formatter(FuncFormatter(lambda x, pos: pressure[pos]))
plt.show()
这里有一些数据:
658.18837;940.56904;22.17028
663.54261;939.99102;22.13224
668.91575;939.41132;22.13249
674.37554;938.82261;22.13454
679.86459;938.23111;22.11198
685.49578;937.62465;22.09777
691.29321;937.00067;22.05775
697.26395;936.35845;22.09801
702.43408;935.80256;21.87262
706.51564;935.3637;21.77721
710.45886;934.93975;21.68197
715.56184;934.3913;21.67625
720.97886;933.80945;21.68942
727.17314;933.14455;21.68583
733.47037;932.46905;21.6334
解决方案
您可以使用该alpha
参数来调整线条的透明度。
import matplotlib.pyplot as plt
from numpy import genfromtxt
data = genfromtxt("1.csv", delimiter=";")
# presure (hPa), altitude (m)
altitude, pressure, temperature = data.T
fig, ax = plt.subplots()
ax.plot(temperature, altitude, label='Temperature', color='r')
ax.set_xlabel('Temperature(°C)')
ax.set_ylabel('Altitude(m)')
ax2 = ax.twinx()
ax2.set_ylabel('Pressure(mb)')
ax2.plot(temperature, pressure, color='b', alpha=0)
fig.legend(loc="upper right", bbox_to_anchor=(1,1), bbox_transform=ax.transAxes)
plt.show()
推荐阅读
- javascript - NestJS/Fastify Cookie 未处理的承诺拒绝警告
- oauth-2.0 - Keycloak - 合并具有相同电子邮件的用户
- java - OpenCV + OpenGL:复制 gl 纹理,使用 OpenCV 修改并渲染
- java - 带有构造函数的基类的子类中的强制构造函数
- c++ - 如何从构造函数副本 T(const T&) 调用对象 T?
- azure-devops - TF400813: 用户 '' 无权访问此资源
- scala - 在scala中,如何对内联表达式进行模式匹配?
- java - 如何通过实例化一个类并将该类设置为其数据类型来初始化变量?
- java - 为什么我的程序在 Eclipse 中启动而不是作为 jar 文件启动?
- python - 如何在 django 的日期时间中分隔 HH 和 MM