1

如图所示,我一直在使用fill_between填充两条红线。我一直在使用这个例子(从底部开始的第三个数字)。

但是,就我而言,一个 y 值有两个 x 值。我几乎明白了,但不明白这里出了什么问题:

ax = plt.subplot(111)
plt.ylim(0.1, 1.2)
plt.xlim(0.03, 5.0)
ax.fill_between(inner_edge, outer_edge, mass, facecolor='b')
plt.loglog(inner_edge, mass, 'r-')
plt.loglog(outer_edge, mass, 'r-')

为什么程序只是填充它的一部分。那是什么扭曲?

在此处输入图像描述

4

1 回答 1

3

fill_betweenx改为使用

ax.fill_betweenx(mass, inner_edge, outer_edge, facecolor='b')

例子:

import matplotlib.pyplot as plt
import numpy as np

inner_edge = np.linspace(0.1, 5.0, 10)
outer_edge = inner_edge * 0.3
mass = np.linspace(0.1, 1.2, 10)

ax = plt.subplot(111)
plt.ylim(0.1, 1.2)
plt.xlim(0.03, 5.0)

ax.fill_betweenx(mass, inner_edge, outer_edge, facecolor='b')

plt.loglog(inner_edge, mass, 'r-')
plt.loglog(outer_edge, mass, 'r-')

plt.show()

在此处输入图像描述

于 2013-07-19T19:58:10.650 回答