【问题标题】:Plotly Multi Column Horizontal LegendPlotly 多列水平图例
【发布时间】:2017-05-02 20:16:03
【问题描述】:

我正在尝试使用 plotly 包在 R 中创建水平条形图。由于图例项目的长度,我希望它们在 2 列中水平显示在视觉对象的顶部或底部。是否可以指定图例的列数?

我已经能够使用Layout(legend = list(orientation='h')) 成功地将图例放置在 x 轴下方,但是无论我将图例放在哪里(使用 x 和 y 参数),它始终只是一个长列表。我看过一个 github 项目,用于在 js 中创建多列图例,但不是 r。

谢谢,

【问题讨论】:

  • R Plotly 只是将 JSON 传递给 JS Plotly,所以如果你不能在 JS 中做,你也不能在 R 中做。

标签: r r-markdown plotly


【解决方案1】:

这在正常情况下是不可能的。我认为它有自己的逻辑来确定它有多少地方以及它将显示多少列。

所以我想如果你缩小你的绘图宽度,你可以达到它只显示 2 列的目标。

您也可以尝试通过将 rl 设置为 10 来使用边距属性 (https://plot.ly/r/reference/#layout-margin),例如

另一个想法可能是使图例 (https://plot.ly/r/reference/#layout-legend-font-size) 中的字体大小更大,以便它只使用两列。希望对您有所帮助。

【讨论】:

    【解决方案2】:

    我阅读了相同的 github 页面,我认为这是不可能的,但似乎是!我只检查了 Python,但我希望这将有助于您在 R 中的努力以及在 Python 中寻找信息的每个人。遗憾的是,与其他软件包相比,这里没有太多关于 Plotly 的信息。

    这解决了我的问题

    设置orientation='h' 是不够的。如果您希望将图例项放在不同的列中,您还必须将它们放在不同的legendgroups 中。这是一个带有图例标签的示例:

    fig = go.Figure([
    go.Scatter(x=best_neurons_df['Test Size'],
        y=best_neurons_df['Training Accuracy Max'],
    # You can write anything as the group name, as long as it's different.
        legendgroup="group2", 
        name='Training',
        mode='markers',
    go.Scatter(x=best_neurons_df['Test Size'],
        y=best_neurons_df['Validation Accuracy Max'],
    # You can write anything as the group name, as long as it's different.
        legendgroup="group1",
    layout=dict(title='Best Model Dependency on Validation Split',
        xaxis=dict(title='Validation Set proportion'),
        yaxis=dict(title='Accuracy'),
        margin=dict(b=100, t=100, l=0, r=0),
        legend=dict(x=1, y=1.01,xanchor='right', yanchor='bottom',
            title='', 
            orientation='h', # Remember this as well.
            bordercolor='black',
            borderwidth=1
    ))
    

    Example image

    【讨论】:

      猜你喜欢
      • 2022-12-01
      • 2014-01-29
      • 2021-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      相关资源
      最近更新 更多