python - how - plot title font size matplotlib
matplotlib: ¿cómo disminuir la densidad de las etiquetas de tic en las subparcelas? (3)
Estoy buscando disminuir la densidad de las etiquetas de garrapatas en diferentes subparcelas
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
from StringIO import StringIO
data = """/
a b c d
z 54.65 6.27 19.53 4.54
w -1.27 4.41 11.74 3.06
d 5.51 3.39 22.98 2.29
t 76284.53 -0.20 28394.93 0.28
"""
df = pd.read_csv(StringIO(data), sep=''/s+'')
gs = gridspec.GridSpec(3, 1,height_ratios=[1,1,4] )
ax0 = plt.subplot(gs[0])
ax1 = plt.subplot(gs[1])
ax2 = plt.subplot(gs[2])
df.plot(kind=''bar'', ax=ax0,color=(''Blue'',''DeepSkyBlue'',''Red'',''DarkOrange''))
df.plot(kind=''bar'', ax=ax1,color=(''Blue'',''DeepSkyBlue'',''Red'',''DarkOrange''))
df.plot(kind=''bar'', ax=ax2,color=(''Blue'',''DeepSkyBlue'',''Red'',''DarkOrange''),rot=45)
ax0.set_ylim(69998, 78000)
ax1.set_ylim(19998, 29998)
ax2.set_ylim(-2, 28)
ax0.legend().set_visible(False)
ax1.legend().set_visible(False)
ax2.legend().set_visible(False)
ax0.spines[''bottom''].set_visible(False)
ax1.spines[''bottom''].set_visible(False)
ax1.spines[''top''].set_visible(False)
ax2.spines[''top''].set_visible(False)
ax0.xaxis.set_ticks_position(''none'')
ax1.xaxis.set_ticks_position(''none'')
ax0.xaxis.set_label_position(''top'')
ax1.xaxis.set_label_position(''top'')
ax0.tick_params(labeltop=''off'')
ax1.tick_params(labeltop=''off'', pad=15)
ax2.tick_params(pad=15)
ax2.xaxis.tick_bottom()
d = .015
kwargs = dict(transform=ax0.transAxes, color=''k'', clip_on=False)
ax0.plot((-d,+d),(-d,+d), **kwargs)
ax0.plot((1-d,1+d),(-d,+d), **kwargs)
kwargs.update(transform=ax1.transAxes)
ax1.plot((-d,+d),(1-d,1+d), **kwargs)
ax1.plot((1-d,1+d),(1-d,1+d), **kwargs)
ax1.plot((-d,+d),(-d,+d), **kwargs)
ax1.plot((1-d,1+d),(-d,+d), **kwargs)
kwargs.update(transform=ax2.transAxes)
ax1.plot((-d,+d),(1-d/4,1+d/4), **kwargs)
ax1.plot((1-d,1+d),(1-d/4,1+d/4), **kwargs)
plt.show()
lo que resulta en
Me gustaría disminuir las etiquetas de tick en las dos subparcelas superiores. Como hacer eso ? Gracias.
Bonificación: 1) ¿Cómo deshacerse de la línea de puntos en y = 0 en la base de las barras? 2) ¿Cómo deshacerse de la etiqueta x-trick entre la subparcela 0 y 1? 3) ¿Cómo configurar la parte posterior de la trama a la transparencia? (vea la línea del eje Y rota en la parte inferior derecha que desaparece detrás de la parte posterior de la gráfica)
Puede establecer los ticks en el lugar que desee, al igual que lo hizo con los xticks.
import numpy as np
ax0.yaxis.set_ticks(np.arange(70000,80000,2500))
Esto creará cuatro ticks espaciados uniformemente para su subparcela ax0. Puedes hacer algo similar para tus otras subparcelas.
Un enfoque general es decirle a matplotlib el número deseado de tics:
plt.locator_params(nbins=10)
Editar por comentarios de @Daniel Power: para cambiar para un solo eje (por ejemplo, ''x''
) en un eje, use:
ax.locator_params(nbins=10, axis=''x'')
Una mejora sobre la sugerencia de acercamiento de es la siguiente:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
# ... plot some things ...
# Find at most 101 ticks on the y-axis at ''nice'' locations
max_yticks = 100
yloc = plt.MaxNLocator(max_yticks)
ax.yaxis.set_major_locator(yloc)
plt.show()
Espero que esto ayude.