J'ai tracé quelques données avec Python et essayé de changer les ticks avec FuncFormatter
. Maintenant, je veux changer la segmentation en nombres ronds. Je veux aussi des ticks mineurs dans la même formation, dans mon cas ce serait une segmentation 1/x
. Je veux que la mise à l'échelle se répande. Les images vous aideront à imaginer mon problème.Python 1/x mise en forme de l'échelle de tracé, position de la coche
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as tick
x = np.array([805.92055,978.82006,564.88627,813.70311,605.73361,263.27184,169.40317])
y = np.array([10,9,8,7,6,3,2])
fig, ax = plt.subplots(figsize =(3.6,2.5))
plt.plot(1/x,y,linestyle ='None',marker='1')
a=0.001
b=0.005
plt.xlim(a,b)
def my_formatter_fun(x, p):
return "%.0f" % (1/x)
ax.get_xaxis().set_major_formatter(tick.FuncFormatter(my_formatter_fun))
Comment puis-je changer le segmentaion pour que je sois quelque chose comme ça? Je pensais qu'il pourrait y avoir un moyen d'ajouter mes souhaits dans my_formatter_fun
mais je ne sais pas comment. Comment pourrais-je ajouter des ticks mineurs dans une distribution 1/x
? J'ai essayé plt.minorticks_on()
mais cela ne fonctionne pas, car ils sont dans une position linéaire.