我的客户要求折线图的值一直延伸到某个x轴,然后留下1个xtick没有值(空)
我设法添加了emty x空间,但值仍然显示,Id需要“在7月13日之后”消失的线,以填充停止的相同方式...。
到目前为止,这是我的代码:
for i, val in enumerate(data):
#data is an array with 3 elements, every elem has an array of y values in y[]
linecolor = colors[i]
# y is a 2D array of values: [[1,2,3,4,5,0],[1,2,3,4,5,0],[1,2,3,4,5,0]]
ax.plot(x, y[i], '.-', label=doctor_names[i], markersize=8,fillstyle='full',linewidth=1.5, color=linecolor, clip_on=True, zorder=30)
ax.fill_between(x, 0, y[i], where=[True, True, True, True, True, False], color=WeeklyReviewChart.fillcolors[i], alpha=0.8, edgecolor="white", zorder=20)
通常,要使matplotlib不绘制值,请将其设置为np.nan
。例如,这对于绘制由于垂直渐近线而引起的换行很有用。
但是,如果您希望保留为空白的图部分完全沿着左或右边界出现,那么您真正需要做的就是调用ax.set_xlim
扩展要绘制的区域:
ax.set_xlim(min(x), max(x)+DT.timedelta(days=7))
例如,
import datetime as DT
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(2015)
x = [DT.date(2015,6,15)+DT.timedelta(days=i*7)
for i in range(5)]
y = np.random.randint(25, size=(3,5)).astype(float)
fig, ax = plt.subplots()
color = ['blue', 'green', 'red']
for i in range(3):
ax.plot(x, y[i], '.-', markersize=8, fillstyle='full', linewidth=1.5,
clip_on=True, zorder=30)
ax.fill_between(x, 0, y[i], alpha=0.5, color=color[i],
edgecolor="white", zorder=20)
ax.set_xlim(min(x), max(x)+DT.timedelta(days=7))
plt.show()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句