我想给我的图的所有负区域(y=0轴以下)着色。
函数facecolor
为整个图形设置它。然后,我尝试使用fill_between
,但由于边距,即使我将其添加到轴的最大值中,它也会得到白色。
以下是我目前的情节(复制下面的截图):
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
# loading file
for row in file:
# getting x, y, color and label from row
plt.plot(x, y, color=color, linewidth = 3,
marker='|', markerfacecolor=color, markersize=12, label=label)
# x = [-a, b] and y = [c, c] making only horizontal lines with two points (one negative and one positive)
plt.axvline(x=0, color="k", linestyle='dashed')
plt.axhline(y=0, color="r", linewidth=4)
xmarg, ymarg = plt.margins()
xmin, xmax, ymin, ymax = plt.axis()
ax.fill_between([xmin-xmarg, xmax+xmarg], ymin-ymarg, 0, color='lightgray')
但是背景颜色没有粘在视口边界(左,右和底部)上,仍然有一个边距。如果我用ax.margins(0)
删除边距,它就可以工作。但我想保留它们,以避免我的图表粘在边框上。
您可以在页边空白下方的图片中看到:
那么,如何在没有边距/填充的情况下填充横坐标下方的图形的背景颜色?
如果我去掉页边距,我的数据线会粘在边框上,我不想这样。我想保留数据和坐标轴之间的边距。但是我想填充视口下半部分的背景色,而不仅仅是数据区域。
1条答案
按热度按时间a0zr77ik1#
ax.margins(0)
将边距减少到0.set_xlim
和.set_ylim
在数据条的末端与左、右和底部 Backbone.js 之间留出缓冲空间。