xticks how font change python plot matplotlib pandas

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.