[英]Python and plot() : how to limit the number of x-axis ticks (labels)
[英]Python matplotlibs set labels/ticks in X-axis by condition
我有剧情:
而且我想更改X轴的标签/标记,因此只有在蓝色段结束或开始时才会有一个,其值为
x / 266.6667
因此,如果我们第一次看蓝线,x的值为1500,所以我想向x轴添加15000 / 266.667。 总体上有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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.