在 plotly f# 中移动图例
Moving the legend in plotly f#
我一直在尝试将情节中的图例移动到情节的顶部或底部,以保持具有不同图例的情节的统一大小,但我一直无法这样做。即使是 plotly 文档也不是很有帮助。有人知道怎么做吗?
我尝试移动此示例代码的图例,但没有成功。
let chart = Chart.Scatter(xs,
[10.; 20.; nan; 15.; 10.; 5.; 15.;nan; 20.; 10.; 10.; 15.; 25.; 20.; 10.],
StyleParam.Mode.Lines_Markers, Name="<b>No</b> Gaps")
|> GenericChart.mapTrace (Trace2DStyle.Scatter(ConnectGaps = true))
[
chart;
Chart.Scatter(xs,
[5.; 15.; nan; 10.; 5.; 0.; 10.; nan; 15.; 5.; 5.; 10.; 20.; 15.; 5.],
StyleParam.Mode.Lines_Markers, Name="Gaps")
] |> Chart.combine
谢谢!
This GitHub comment 给出了 Plotly.NET 2.0 的一些相关信息。简而言之,您可以像这样将图例移动到图的顶部:
open Plotly.NET.LayoutObjects
let myLegend =
Legend.init(
Orientation = StyleParam.Orientation.Horizontal,
Y = 1.1
)
...
|> Chart.combine
|> Chart.withLegend(myLegend)
将 Y
设置为 0.0
会将图例放在图表下方。
有关 Legend.init
的更多详细信息,请参见 here。
没有所有选项的示例,但是如果您使用 plotly.net 网站上的搜索栏,您可以搜索显示各种选项的相关函数。
您可能需要 Chart.withLegendStyle 功能。您可以使用 X
和 Y
参数来移动图例。 Plotly.NET 的 API 文档中的函数文档描述了参数和选项。
一些示例数据:
#r "nuget: Plotly.NET"
open Plotly.NET
let xs = [1.0 .. 4.0]
let y1 = xs |> List.map (fun x ->
-4.0 + if x = 3.0 then nan else x*1.0)
let y2 = xs |> List.map (fun x ->
3.0 + if x = 2.0 then nan else -x*2.0)
要将图例置于下方,您只需更改图例方向,因为水平图例默认置于下方:
[
Chart.Scatter(xs,y1,
StyleParam.Mode.Lines_Markers,
Name="<b>No</b> Gaps")
|> GenericChart.mapTrace (Trace2DStyle.Scatter(ConnectGaps = true))
Chart.Scatter(xs,y2,
StyleParam.Mode.Lines_Markers,
Name="Gaps")
]
|> Chart.combine
|> Chart.withLegendStyle(Orientation=StyleParam.Orientation.Horizontal)
|> Chart.show
要放置上面的图例,您还必须更改 Y
参数:
[
Chart.Scatter(xs,y1,
StyleParam.Mode.Lines_Markers,
Name="<b>No</b> Gaps")
|> GenericChart.mapTrace (Trace2DStyle.Scatter(ConnectGaps = true))
Chart.Scatter(xs,y2,
StyleParam.Mode.Lines_Markers,
Name="Gaps")
]
|> Chart.combine
|> Chart.withLegendStyle(Orientation=StyleParam.Orientation.Horizontal,
Y=1.1)
我一直在尝试将情节中的图例移动到情节的顶部或底部,以保持具有不同图例的情节的统一大小,但我一直无法这样做。即使是 plotly 文档也不是很有帮助。有人知道怎么做吗?
我尝试移动此示例代码的图例,但没有成功。
let chart = Chart.Scatter(xs,
[10.; 20.; nan; 15.; 10.; 5.; 15.;nan; 20.; 10.; 10.; 15.; 25.; 20.; 10.],
StyleParam.Mode.Lines_Markers, Name="<b>No</b> Gaps")
|> GenericChart.mapTrace (Trace2DStyle.Scatter(ConnectGaps = true))
[
chart;
Chart.Scatter(xs,
[5.; 15.; nan; 10.; 5.; 0.; 10.; nan; 15.; 5.; 5.; 10.; 20.; 15.; 5.],
StyleParam.Mode.Lines_Markers, Name="Gaps")
] |> Chart.combine
谢谢!
This GitHub comment 给出了 Plotly.NET 2.0 的一些相关信息。简而言之,您可以像这样将图例移动到图的顶部:
open Plotly.NET.LayoutObjects
let myLegend =
Legend.init(
Orientation = StyleParam.Orientation.Horizontal,
Y = 1.1
)
...
|> Chart.combine
|> Chart.withLegend(myLegend)
将 Y
设置为 0.0
会将图例放在图表下方。
有关 Legend.init
的更多详细信息,请参见 here。
没有所有选项的示例,但是如果您使用 plotly.net 网站上的搜索栏,您可以搜索显示各种选项的相关函数。
您可能需要 Chart.withLegendStyle 功能。您可以使用 X
和 Y
参数来移动图例。 Plotly.NET 的 API 文档中的函数文档描述了参数和选项。
一些示例数据:
#r "nuget: Plotly.NET"
open Plotly.NET
let xs = [1.0 .. 4.0]
let y1 = xs |> List.map (fun x ->
-4.0 + if x = 3.0 then nan else x*1.0)
let y2 = xs |> List.map (fun x ->
3.0 + if x = 2.0 then nan else -x*2.0)
要将图例置于下方,您只需更改图例方向,因为水平图例默认置于下方:
[
Chart.Scatter(xs,y1,
StyleParam.Mode.Lines_Markers,
Name="<b>No</b> Gaps")
|> GenericChart.mapTrace (Trace2DStyle.Scatter(ConnectGaps = true))
Chart.Scatter(xs,y2,
StyleParam.Mode.Lines_Markers,
Name="Gaps")
]
|> Chart.combine
|> Chart.withLegendStyle(Orientation=StyleParam.Orientation.Horizontal)
|> Chart.show
要放置上面的图例,您还必须更改 Y
参数:
[
Chart.Scatter(xs,y1,
StyleParam.Mode.Lines_Markers,
Name="<b>No</b> Gaps")
|> GenericChart.mapTrace (Trace2DStyle.Scatter(ConnectGaps = true))
Chart.Scatter(xs,y2,
StyleParam.Mode.Lines_Markers,
Name="Gaps")
]
|> Chart.combine
|> Chart.withLegendStyle(Orientation=StyleParam.Orientation.Horizontal,
Y=1.1)