标签到 holoviews HLine
Label to holoviews HLine
我有一个带有两个静态 HLine 的条形图,我想为它们添加标签(或图例),以便在图上定义它们。我试过类似的东西:
eq = (
sr2.hvplot(
kind="bar",
groupby ="rl",
dynamic = False,)
* hv.HLine(0.35, name="IA1").opts(color='red')
* hv.HLine(0.2, label="IA2").opts(color='green')
)
但是图表没有标签。
这个类似问题的答案解释说这并不容易,您需要一个解决方法:
您也可以使用此解决方案的部分内容:
https://discourse.holoviz.org/t/horizontal-spikes/117
也许最简单的方法就是当您想要带有水平线的图例时不要使用 hv.HLine()
,而是使用 hv.Curve()
自己创建一条手动线:
# import libraries
import pandas as pd
import seaborn as sns
import holoviews as hv
import hvplot.pandas
hv.extension('bokeh')
# create sample dataset
df = sns.load_dataset('anscombe')
# create some horizontal lines manually defining start and end point
manual_horizontal_line = hv.Curve([[0, 10], [15, 10]], label='my_own_line')
another_horizontal_line = hv.Curve([[0, 5], [15, 5]], label='another_line')
# create scatterplot
scatter_plot = df.hvplot.scatter(x='x', y='y', groupby='dataset', dynamic=False)
# overlay manual horizontal lines on scatterplot
scatter_plot * manual_horizontal_line * another_horizontal_line
结果图:
如果你想要文本标签而不是图例,你可以使用 hv.Text
:
import holoviews as hv
hv.extension('bokeh')
hv.Scatter(([4,6,8,10],[0.1,0.5,0.01,0.7])) * \
hv.HLine(0.35).opts(color='red') * hv.Text(9, 0.38, "IA1").opts(color='red') * \
hv.HLine(0.20).opts(color='green') * hv.Text(9, 0.23, "IA2").opts(color='green')
我有一个带有两个静态 HLine 的条形图,我想为它们添加标签(或图例),以便在图上定义它们。我试过类似的东西:
eq = (
sr2.hvplot(
kind="bar",
groupby ="rl",
dynamic = False,)
* hv.HLine(0.35, name="IA1").opts(color='red')
* hv.HLine(0.2, label="IA2").opts(color='green')
)
但是图表没有标签。
这个类似问题的答案解释说这并不容易,您需要一个解决方法:
您也可以使用此解决方案的部分内容:
https://discourse.holoviz.org/t/horizontal-spikes/117
也许最简单的方法就是当您想要带有水平线的图例时不要使用 hv.HLine()
,而是使用 hv.Curve()
自己创建一条手动线:
# import libraries
import pandas as pd
import seaborn as sns
import holoviews as hv
import hvplot.pandas
hv.extension('bokeh')
# create sample dataset
df = sns.load_dataset('anscombe')
# create some horizontal lines manually defining start and end point
manual_horizontal_line = hv.Curve([[0, 10], [15, 10]], label='my_own_line')
another_horizontal_line = hv.Curve([[0, 5], [15, 5]], label='another_line')
# create scatterplot
scatter_plot = df.hvplot.scatter(x='x', y='y', groupby='dataset', dynamic=False)
# overlay manual horizontal lines on scatterplot
scatter_plot * manual_horizontal_line * another_horizontal_line
结果图:
如果你想要文本标签而不是图例,你可以使用 hv.Text
:
import holoviews as hv
hv.extension('bokeh')
hv.Scatter(([4,6,8,10],[0.1,0.5,0.01,0.7])) * \
hv.HLine(0.35).opts(color='red') * hv.Text(9, 0.38, "IA1").opts(color='red') * \
hv.HLine(0.20).opts(color='green') * hv.Text(9, 0.23, "IA2").opts(color='green')