[PYTHON] matplotlib: remplacez l'axe lui-même par un autre.

Il peut être exécuté avec python2.6 +matplotlib (1.4.3)[^ 1].

[^ 1]: ne peut pas être exécuté avec matplotlib (1.0.1)

Lorsque vous souhaitez donner à l'axe une échelle complètement différente lors de la création d'un graphique.

Cette fois, dans le sous-tracé, après avoir créé l'axe, tracez les données pour ʻax1.twinx (). Twiny () `. La cible de l'intrigue est «rand.txt», que j'utilise à chaque fois.

python


$ perl -le 'print rand (10) for 0 .. 99' > rand.txt

replace.py


#!/usr/bin/env python -B
# -*- coding: utf-8 -*-
import sys
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv(sys.argv[1], header=None)
#Graphique de l'axe
fig, ax1 = plt.subplots()
ax1.xaxis_date()         #X est une série chronologique
ax1.set_ylim([0,100])    #Y vaut 0~100
ax1.grid(True)
ax = ax1.twinx().twiny()

#Graphique de données
df.plot(ax=ax,xticks=[],yticks=[])
ax.legend().set_visible(False) 
ax.grid(False)
fig.subplots_adjust( bottom=0.15, top=0.95,left=0.1, right=0.95)
plt.savefig(sys.argv[2])

python


$ python replace.py rand.txt graph.png

change.png

Contexte

Lorsqu'il s'agit de séries temporelles avec matplotlib, le traçage de données [^ 2] contenant une énorme quantité d'horodatages semble tourner autour de localisateurs tels que dates.MonthLocator.

[^ 2]: environ 10 * 365 * 24 * 60 (ordre horaire).

Si vous l'exécutez sans arguments, ce sera une image décente, mais une fois (une fois), si vous l'exécutez avec intervalle = 4, etc., la grille et xticklabel seront foirés.

Pour éviter cela, soustrayez une quantité énorme d'horodatages de manière appropriée et dessinez une grille, etc. à partir de là [^ 3].

[^ 3]: 10 * 365 * 24 (commande quotidienne)

memo

--À la fin, faites fig.subplots_adjust ().

Recommended Posts

matplotlib: remplacez l'axe lui-même par un autre.
Graphique 2 axes avec Matplotlib
[Python] Définissez la plage du graphique avec matplotlib
Ajustez l'espacement entre les chiffres avec Matplotlib
Alignez la taille de la barre de couleurs avec matplotlib
Définissez la couleur des xticklabels individuellement avec matplotlib
Dessinez une étiquette d'axe hiérarchique avec matplotlib + pandas
Afficher les marqueurs au-dessus de la bordure avec matplotlib
[Matplotlib] N'inclinez pas l'étiquette de l'axe
Alignez la barre de couleurs sur la figure avec matplotlib
[Python] axe limite du graphe 3D avec Matplotlib
Conseils de dessin avec matplotlib côté serveur
Augmentez la taille de la police du graphique avec matplotlib
Une doublure qui répertorie les couleurs de matplotlib
Suivez le marqueur AR avec un servo à 2 axes
La base de la théorie des graphes avec l'animation matplotlib
Visualisez le comportement de l'algorithme de tri avec matplotlib
Japonais avec matplotlib
Animation avec matplotlib
histogramme avec matplotlib
Chargez le module du même nom dans un autre emplacement
Afficher le graphique lors de la modification des paramètres avec PySimpleGUI + Matplotlib