He estado buscando en Internet durante mucho tiempo, pero no pude encontrar la manera de hacerlo. Necesito dibujar varias figuras cuyos xticks se definen como numpy.arange (1, N), siendo N diferente para cada figura. Quiero que el espacio entre los xticks sea idéntico en todas las figuras (por ejemplo, 1 cm), es decir, el ancho de cada figura debe depender del tamaño de numpy.arange (1, N). ¿Alguna idea de cómo hacer eso?Matplotlib - Cómo establecer la distancia (en mm/cm/puntos ...) entre los xticks
6
A
Respuesta
2
Creo que se puede hacer esto con una combinación de un control cuidadoso de su tamaño ejes (como una fracción de la figura), y ax.set_xlim
fig.set_size_inches
(doc) para ajustar el tamaño real de la figura.
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
de ampliar la respuesta de @ tcaswell, aquí es cómo lo hago cuando quiero micro-gestión de la dimensión real de mi eje y de la distancia entre las garrapatas.
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')
Esto resulta en una figura de 11,8 cm con un eje x de 10 cm con 1 cm de espacio entre cada garrapatas:
Cuestiones relacionadas
- 1. matplotlib xticks etiquetas se superponen
- 2. ¿Cómo puedo establecer la distancia entre los elementos ordenados verticalmente?
- 3. Configuración manual de xticks con xaxis_date() en Python/matplotlib
- 4. Establecer distancia entre tramos usando el margen
- 5. estableciendo el espaciado entre gráficos de barras agrupadas en matplotlib
- 6. ¿Es posible envolver el texto de xticks en matplotlib en python?
- 7. cómo encontrar la distancia entre dos geopoints?
- 8. ¿Cómo encuentro la distancia entre dos puntos?
- 9. Cómo obtener la distancia entre dos divs
- 10. ¿Cómo establecer los márgenes para una figura de matplotlib?
- 11. Distancia entre la expresión regular
- 12. ¿Cómo puedo establecer la relación de aspecto en matplotlib?
- 13. Establecer el eje radial en los trazados polares de Matplotlib
- 14. distancia entre 2 códigos postales
- 15. "Distancia" entre colores en PHP
- 16. Distancia entre geopoints
- 17. Encontrar la distancia entre CLLocationCoordinate2D puntos
- 18. la distancia entre dos puntos Android
- 19. Distancia entre 2 geocodificaciones
- 20. Cálculo de la distancia entre dos puntos
- 21. ¿Cómo se mide la distancia en metros entre dos CLLocations?
- 22. ¿Cómo puedo calcular la distancia entre dos puntos en MkMapview?
- 23. Encontrar la distancia entre dos círculos
- 24. establecer límites de eje en matplotlib pyplot
- 25. Calcule la distancia social entre dos usuarios
- 26. Medir la distancia entre dos dispositivos iOS
- 27. En matplotlib, ¿cuál es la diferencia entre set_xlim y set_xbound?
- 28. ¿Cómo establecer "paso" en el eje X en mi figura en matplotlib python 2.6.6?
- 29. Obtener la distancia entre dos puntos geográficos
- 30. distanceFromLocation - Calcular la distancia entre dos puntos