我想尝试绘制此 Example graph,以便它不是 -2 y 值而是 (2)
答案 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()