【问题标题】:Plotly Set custom tickvals for all points but do not show all ticksPlotly 为所有点设置自定义刻度但不显示所有刻度
【发布时间】:2021-05-20 17:24:39
【问题描述】:

帮助page上“Tickmode Array”的插图显示了这个问题。

如果我们将鼠标悬停在 x=1 上,悬停标签将显示“(One, 28.8)”。但是如果我们将鼠标悬停在 x=2 上,悬停标签将显示“(2, 28.5)”。这是因为为 x=1 而不是 x=2 设置了 tickvals 和 ticktext。

我想显示“(Two, 28.8)”并且保持网格线原样(“One”、“Three”、...) .在 tickvals 和 ticktext 中添加 x=2 设置是不行的,因为它会添加一个新的网格线 x=2。

如何做到这一点?

import plotly.graph_objects as go

go.Figure(go.Scatter(
    x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
    y = [28.8, 28.5, 37, 56.8, 69.7, 79.7, 78.5, 77.8, 74.1, 62.6, 45.3, 39.9]
))

fig.update_layout(
    xaxis = dict(
        tickmode = 'array',
        tickvals = [1, 3, 5, 7, 9, 11],
        ticktext = ['One', 'Three', 'Five', 'Seven', 'Nine', 'Eleven']
    )
)

fig.show()

谢谢!

【问题讨论】:

  • 请将您的代码示例提供为文本而不是图像。

标签: plotly plotly-python


【解决方案1】:

一个解决方案:

import plotly.graph_objects as go

fig = go.Figure(go.Scatter(
    x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
    y = [28.8, 28.5, 37, 56.8, 69.7, 79.7, 78.5, 77.8, 74.1, 62.6, 45.3, 39.9],
    text = ['One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Eleven', 'Twelve'],
    hovertemplate = 'X:%{text}<br>Y:%{y:.2f}<extra></extra>'
))

fig.update_layout(
    xaxis = dict(
        tickmode = 'array',
        tickvals = [1, 3, 5, 7, 9, 11],
        ticktext = ['One', 'Three', 'Five', 'Seven', 'Nine', 'Eleven']
    )
)


fig.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    相关资源
    最近更新 更多