想把图里的横坐标在24以后的重新赋值为123

img

img


我想把图里横坐标的252627,改成123……
根据提示用的while循环,还取了余,结果虽然没报错,但是也没有运行,应该如何处理呢?

你改数据没有用的
你把数据的横坐标改了,那变成x是1的时候有多个对应的y值
而如果你想把x=25显示成1
需要对控件本身进行重绘
或者你可以改变一下思路,x轴的类型不要用int
改为datetime类型

import numpy as np
from matplotlib import pyplot as plt
from matplotlib.ticker import FuncFormatter
from matplotlib.ticker import MultipleLocator

x = np.arange(15, 30)
y = np.square(x)

def func_x(x, pos):
    return '%d'%(x%24)

fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
ax.plot(x, y, c='r')
ax.xaxis.set_major_formatter(FuncFormatter(func_x))
ax.xaxis.set_major_locator(MultipleLocator(1))
plt.show()

img