好的,我的初始想法是在plotly中制作一条折线图,并在特定阈值t后用一种颜色着色,而在阈值之前则用另一种颜色着色。这个方法可以处理23个或更少的点,但对于更多的点,则无法使用此方法:
import numpy as np
import plotly.graph_objects as go
X = [j for j in range(0, 100)]
Y = [j for j in range(100000, 200000, 1000)]
X = X[:23]
Y = Y[:23]
X = np.array(X)
Y = np.array(Y)
t = 4
x = X[X <= t] # Include the threshold
y = Y[X <= t]
bx = X[X >= t]
by = Y[X >= t]
fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=y, line=dict(width=4, color='grey'), name="useless data"))
fig.add_trace(go.Scatter(x=bx, y=by, line=dict(width=4, color='blue'), name="useful data"))
fig.update_layout(xaxis_title="x axis", yaxis_title="y axis")
fig.show()
这段代码正常运行,如果你运行它,你会看到数字4包含在蓝色点中。但是,现在请移除只取23个值的语句(X = X[:23], Y = Y[:23]
)。你会发现数字4不再是蓝色点的一部分,此外,蓝线上的点也消失了,你可以悬停查看数据,但是无法看到实际的点!如果有人知道为什么会发生这种情况,请告诉我,这是一个实际的错误还是正常的行为,有什么我忽略了的东西?谢谢您提前的帮助!