[PYTHON] Affichage quadrillé du double tracé (axe vertical gauche et droit) (matplotlib)

Bonjour. En utilisant twinx de matplotlib, j'ai essayé d'afficher du grain dans un graphique à double axe vertical et de ne pas le rendre inesthétique.

Normalement, les positions de ces graduations et grilles sont incohérentes et disgracieuses. Cette fois, je ne pouvais pas penser à une bonne méthode, alors j'ai écrit manuellement set_yticks pour la rendre cohérente (matplotlib 2.0.2). Figure_1.png

twinx_grid.py


import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

t = np.arange(0.0, 10.01, 0.01)
_, ax1 = plt.subplots()
ax2 = ax1.twinx()

title = 'sin'
s1 = np.sin(np.pi*t)
ax1.plot(t, s1, 'b.')
ax1.set_ylabel(title, color='b', fontsize=18)

title = 'linear'
s2 = t * 1.6
ax2.plot(t, s2, 'g-')
ax2.set_ylabel(title, color='g', fontsize=18)

#Le nombre de graduations sur les axes verticaux gauche et droit est égalisé afin qu'ils soient dans la même position.
ax1.set_yticks(np.linspace(-1.0, 1.0, 5))
ax2.set_yticks(np.linspace(0, 20, 5))
ax1.set_ylim(-1.06, 1.06)
ax2.set_ylim(-0.6, 20.6)

ax1.tick_params(labelsize=18)
ax2.tick_params(labelsize=18)
ax1.set_xlabel('time (s)', fontsize=18)
ax1.grid(True, which='both') 
plt.xlim(-0.2, 10.2)
plt.subplots_adjust(left=0.18, right=0.86, bottom=0.14, top=0.94)
plt.show()

Recommended Posts

Affichage quadrillé du double tracé (axe vertical gauche et droit) (matplotlib)
matplotlib Affichage de l'échelle du journal et affichage de la grille
À propos de la justification gauche et de la justification droite de Kivy Label
Avec matplotlib, l'axe vertical sur le côté gauche de l'histogramme est la fréquence, et l'axe vertical sur le côté droit est la fréquence relative (peut-être une mauvaise manière)
Affichage japonais de matplotlib, seaborn
Installer SciPy et matplotlib (Python)