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
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 ()
.
pandas
peuvent changer la largeur de l'image sans permission, alors prenez l'habitude de l'ajuster explicitement.Recommended Posts