Długo szukałem w Internecie, ale nie mogłem wymyślić, jak to zrobić. Muszę narysować kilka figur, których xticks są zdefiniowane jako numpy.arange (1, N), N jest różne dla każdej figury. Chcę, aby odstępy między krosami były identyczne na wszystkich figurach (na przykład 1 cm), to znaczy szerokość każdej figury musi być zależna od wielkości numpy.arange (1, N). Jakiś pomysł, jak to zrobić?Matplotlib - Jak ustawić odległość (w mm/cm/punktach ...) między Xticks
6
A
Odpowiedz
2
myślę, że można to zrobić za pomocą kombinacji starannej kontroli rozmiaru osi (jako ułamek rysunek) ax.set_xlim
i fig.set_size_inches
(doc) aby ustawić rzeczywisty rozmiar rysunku.
ex
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.set_xlim([0,N])
fig.set_size_inches([N/2.54,h])
0
Aby rozwinąć na odpowiedź @ tcaswell jest, oto jak to zrobić, gdy chcę mikro-zarządzania realny wymiar mojego osi i kleszcze wzajemnych odległości.
import numpy as np
import matplotlib.pyplot as plt
plt.close('all')
#------------------------------------------------------ define xticks setup ----
xticks_pos = np.arange(11) # xticks relative position in xaxis
N = np.max(xticks_pos) - np.min(xticks_pos) # numbers of space between ticks
dx = 1/2.54 # fixed space between xticks in inches
xaxis_length = N * dx
#------------------------------------------------------------ create figure ----
#---- define margins size in inches ----
left_margin = 0.5
right_margin = 0.2
bottom_margin = 0.5
top_margin = 0.25
#--- calculate total figure size in inches ----
fwidth = left_margin + right_margin + xaxis_length
fheight = 3
fig = plt.figure(figsize=(fwidth, fheight))
fig.patch.set_facecolor('white')
#---------------------------------------------------------------- create axe----
#---- axes relative size ----
axw = 1 - (left_margin + right_margin)/fwidth
axh = 1 - (bottom_margin + top_margin)/fheight
x0 = left_margin/fwidth
y0 = bottom_margin/fheight
ax0 = fig.add_axes([x0, y0, axw, axh], frameon=True)
#---------------------------------------------------------------- set xticks----
ax0.set_xticks(xticks_pos)
plt.show(block=False)
fig.savefig('axis_ticks_cm.png')
Powoduje postać 11,8 cm z Xaxis 10 cm z 1cm przestrzeni pomiędzy każdymi kleszczy:
Powiązane problemy
- 1. matplotlib xticks etykiety nakładają
- 2. Usunąć xticks w wątku matplotlib?
- 3. Jak ustawić odległość między elementami zamówionymi pionowo?
- 4. Dostosuj odległość tylko między dwiema partiami w matplotlib.
- 5. Jak ustawić odległość między widokiem tekstowym a rysowaniem w przycisku?
- 6. Matplotlib: xticks co 15 minut, począwszy od godziny
- 7. Odległość między adresami
- 8. "Odległość" między kolorami w PHP
- 9. UICollection Odległość między komórkami?
- 10. ustawianie odstępów między zgrupowanymi wykresami słupkowymi w matplotlib
- 11. Zwiększ odległość między tytułem a fabułą w matplolib?
- 12. odległość między 2 kodami pocztowymi
- 13. Jak uzyskać odległość między dwoma punktami w systemie Android?
- 14. Jak ustawić lokalizację mniejszych znaczników w matplotlib?
- 15. Jak ustawić domyślną mapę kolorów w Matplotlib
- 16. Google Cardboard Jak zmienić odległość między oczami
- 17. ggplot Zwiększ odległość między boxplots
- 18. Android odległość między dwoma punktami
- 19. Jak uzyskać odległość między dwoma divami
- 20. Odległość między RecyclerView zbyt daleko
- 21. Android - odległość między dwoma miastami
- 22. Odległość między pozycjami w widoku listy
- 23. Odległość między dwoma kształtami/obszarami w Javie?
- 24. Fizyczna odległość między dwoma miejscami
- 25. Oblicz odległość między urządzeniem Bluetooth w Androidzie
- 26. Python, Matplotlib, subplot: Jak ustawić zakres osi?
- 27. Jak zwiększyć odległość między kolumnami tabeli w html?
- 28. Jak obliczyć odległość trasy między wieloma punktami GeoJSON w MongoDB?
- 29. W ulotce, jak obliczyć odległość pikseli między dwoma obiektami LatLng?
- 30. Jak mierzyć odległość w metrach między dwoma CLLOCATIONS?