我有情节:
X轴的,我想更改标签/蜱所以会有一个只有当一个蓝色片段结束或开始,与价值
X / 266.6667
因此,如果我们看一下在第一时间蓝线开始,x的值是1500,所以我要添加值15000 / 266.667 x轴。整体有4个蓝色段所以应该有在x轴(每蓝色段开始时间或结束其中一个)8个蜱
我画了使用matplotlib此图:
import matplotlib.pyplot as plt
data = np.array(vec)
df = pd.DataFrame({'data': data}).reset_index()
df['colors'] = np.where(data < 1, 'red', 'blue')
plt.scatter(df['index'], df['data'], c=df['colors'])
plt.show()
谢谢!
通过266.6667划分数据来得到它想要的单位。
x /= 266.6667
然后找到你想要通过标记点
ticks = x[:-1][np.diff((y > 1).astype(int)) > 0]
完整的例子:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,70000,23)
y = np.array([0,0,0,2,3,5,4,3,0,0,0,0,2,3,5,5,3,0,0,0,0,4,3])
x /= 266.6667
fig, ax= plt.subplots()
ax.scatter(x,y, c=(y > 1), cmap="bwr_r")
ticks = x[:-1][np.diff((y > 1).astype(int)) > 0]
ax.set_xticks(ticks)
plt.show()