绘图更改负 y 轴值。例如将 -1 更改为 (1)

时间:2021-03-15 15:31:16

标签: python plotly plotly-python

我想尝试绘制此 Example graph,以便它不是 -2 y 值而是 (2)

1 个答案:

答案 0 :(得分:0)

首先要注意的是 (2) 是一个字符串。由于您不能将刻度文本的数据类型混合在一起,因此您需要将每个 y 轴刻度标签更改为字符串,而不仅仅是 -2,这意味着您需要将 -2 的刻度值映射到刻度文本,这是字符串 '(2)', 0 to '0', 2 to '2' 等等......我承认这很丑陋,但我想不出另一种解决方法。

可以在 Plotly documentation 中找到有关刻度文本和文本值的更多信息。

import pandas as pd
import numpy as np
import plotly.graph_objects as go

## recreate some random timeseries data
np.random.seed(42)
df = pd.DataFrame({
    'date':pd.date_range("2021-01-01","2022-01-01", freq="d"),
    'x1':np.random.uniform(low=-2.0, high=2.0, size=366),
    'x2':np.random.uniform(low=4.0, high=8.0, size=366)
})

## plot your data on the fig
fig=go.Figure()
fig.add_trace(go.Scatter(
        x=df.date,
        y=df.x1,
        mode='lines'
        )
    )
fig.add_trace(go.Scatter(
        x=df.date,
        y=df.x2,
        mode='lines',
        line=dict(color='black', dash='dash')
        )
    )

## map each of the tickvals to the desired ticktext 
fig.update_layout(
    yaxis=dict(
        tickmode='array',
        tickvals=[-2, 0, 2, 4, 6, 8],
        ticktext=['(2)', '0', '2', '4', '6', '8']
    )
)

fig.show()

enter image description here