python - Warning " Adding an axes using the same arguments" and custom plot function
问题描述
I have made a function that makes histograms plot the way I like it (with error bars!).
def histoPlot(h,fmt='.',lighter_error=0.75,**kwargs):
#fig, ax = plt.subplots(1)
ax = plt.axes()
# Get the current color in the cycle #https://stackoverflow.com/questions/28779559/how-to-set-same-color-for-markers-and-lines-in-a-matplotlib-plot-loop
color = next(ax._get_lines.prop_cycler)['color']
if all(h.uncertainties != None):
# plot the error bar https://matplotlib.org/gallery/statistics/errorbar_features.html?highlight=error%20plot
ax.errorbar(u.midpoints(h.bins), h.counts, yerr=h.uncertainties,color = lighten_color(color,lighter_error),fmt=fmt )
# plot the histogram
ax.step(h.bins,np.append(h.counts,h.counts[-1:]),where='post',color=color,**kwargs)
This is perfect for me now, I can use it to make a complex plot in a simple line
histoPlot(histo1,fmt=',')
I can also stack one plot upon the other by putting two lines in the same cell
histoPlot(histo1,fmt=',')`
histoPlot(histo2,fmt=',')
but I get a warning
MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.
warnings.warn(message, mplDeprecation, stacklevel=1)
I have been able to send away the warning (following Matplotlib: Adding an axes using the same arguments as a previous axes), but only at the price of making my function fail to be stackable. That is to say that each call of the function makes a new frame with a new plot. How can I get rid of this warning and still be able to stack my plots?
解决方案
推荐阅读
- html - 如何在 img 元素上添加径向渐变属性
- reactjs - 下一条路线在嵌套路由中不起作用?
- validation - 访问 - 基于 ID 和日期的验证
- json - 使用 JQ 删除具有某些键值对的父元素
- selenium - ChromeDriver 使用 WebdriverManager for Selenium Protractor 解压缩 85.0.4183.38 版本而不是 84.0.4147.89
- python - 根据列删除重复行
- react-native - 升级到 expo SDK 38 和 expo-cli 3.22.3 并将节点 js 降级到 12.18.3 后出现 javascript 捆绑错误
- javascript - 如何使用从 Flask 发送的带有 400 错误的 JSON 和 javascript 中的 fetch?
- arrays - Javascript列出数组中包含嵌套数组中的值的对象
- azure - 将 PDF 上传到 Azure Data Lake Store Gen2