如何使用 matplotlib 在全息视图中绘制相同颜色的曲线和误差线?
How to plot a curve and error bars of the same color in holoviews with matplotlib?
我想使用 matplotlib
后端在 holoviews
中绘制一条带有误差线的曲线。我希望曲线和误差条的颜色相同,但没有明确指定曲线的颜色。 IE。我可以轻松做到这一点
import holoviews as hv
hv.extension("matplotlib")
means = [1, 4, 2, 3]
errors = [0.3, 0.5, 0.2, 0.1]
color = "green"
mean_plot = hv.Curve(means).opts(color=color)
err_plot = hv.ErrorBars((range(len(means)), means, errors)).opts(edgecolor=color)
mean_plot * err_plot
得到
但是如果我得到 mean_plot
并且不知道它的颜色怎么办?我确定当前选项必须存储在实例的某个位置,但我不知道如何访问它们。我想做类似
的事情
mean_color = mean_plot.<access_options_somehow>.color
err_plot = hv.ErrorBars((range(len(means)), means, errors)).opts(edgecolor=mean_color)
我没有安装 holoviews
,但由于它使用的是 matplotlib
,您可以尝试使用通用解决方案来提取线条的颜色,然后使用它来绘制误差线
mean_plot = hv.Curve(means) # Don't specify any color here
mean_color = mean_plot[0].get_color() # Extract the default color
err_plot = hv.ErrorBars((range(len(means)), means, errors)).opts(edgecolor=mean_color)
根据@Sheldore 的回答和我在那里的评论,这是一种首先将 holoviews
元素呈现为 matplotlib
图形然后在其中找到颜色的方法。这不是很优雅,我认为一定有更好的方法,但它完成了工作。
import holoviews as hv
hv.extension("matplotlib")
means = [1, 4, 2, 3]
errors = [0.3, 0.5, 0.2, 0.1]
color = "green"
mean_plot = hv.Curve(means).opts(color=color)
fig = hv.render(mean_plot)
ax = fig.axes[0]
line = ax.get_lines()[0]
mean_color = line.get_color()
err_plot = hv.ErrorBars((range(len(means)), means, errors)).opts(edgecolor=mean_color)
mean_plot * err_plot
我想使用 matplotlib
后端在 holoviews
中绘制一条带有误差线的曲线。我希望曲线和误差条的颜色相同,但没有明确指定曲线的颜色。 IE。我可以轻松做到这一点
import holoviews as hv
hv.extension("matplotlib")
means = [1, 4, 2, 3]
errors = [0.3, 0.5, 0.2, 0.1]
color = "green"
mean_plot = hv.Curve(means).opts(color=color)
err_plot = hv.ErrorBars((range(len(means)), means, errors)).opts(edgecolor=color)
mean_plot * err_plot
得到
但是如果我得到 mean_plot
并且不知道它的颜色怎么办?我确定当前选项必须存储在实例的某个位置,但我不知道如何访问它们。我想做类似
mean_color = mean_plot.<access_options_somehow>.color
err_plot = hv.ErrorBars((range(len(means)), means, errors)).opts(edgecolor=mean_color)
我没有安装 holoviews
,但由于它使用的是 matplotlib
,您可以尝试使用通用解决方案来提取线条的颜色,然后使用它来绘制误差线
mean_plot = hv.Curve(means) # Don't specify any color here
mean_color = mean_plot[0].get_color() # Extract the default color
err_plot = hv.ErrorBars((range(len(means)), means, errors)).opts(edgecolor=mean_color)
根据@Sheldore 的回答和我在那里的评论,这是一种首先将 holoviews
元素呈现为 matplotlib
图形然后在其中找到颜色的方法。这不是很优雅,我认为一定有更好的方法,但它完成了工作。
import holoviews as hv
hv.extension("matplotlib")
means = [1, 4, 2, 3]
errors = [0.3, 0.5, 0.2, 0.1]
color = "green"
mean_plot = hv.Curve(means).opts(color=color)
fig = hv.render(mean_plot)
ax = fig.axes[0]
line = ax.get_lines()[0]
mean_color = line.get_color()
err_plot = hv.ErrorBars((range(len(means)), means, errors)).opts(edgecolor=mean_color)
mean_plot * err_plot