[PYTHON] Ändern Sie die Y-Achsenskala von Matplotlib in die Exponentialschreibweise (10-te Potenzschreibweise).

ex1) Zeichnen Sie ein Diagramm

test1.py



import sqlalchemy
import pandas as pd
import matplotlib.pyplot as plt

#SQLAlchemy-Initialisierung
CONNECT_INFO = 'mssql+pyodbc://hogehoge'
engine = sqlalchemy.create_engine(CONNECT_INFO, encoding='utf-8')

#Variable Einstellung
qq = 1
ym = 201607

#DB-Verbindung, gespeicherte Ausführung, Pandas-Datenrahmenerstellung
query = 'EXEC dbo.sp_rtrv_hogehoge @q = {0},@prd = {1}'.format(qq,ym )
df = pd.read_sql_query(query, engine  ,index_col =['t'])

#Diagrammzeichnung
ax = df.plot(  color=('b','r') , alpha=0.6  )
plt.title('hogehoge_title')
plt.grid(which='major')
#ax = plt.gca()

#Datei speichern
fname ='test'+ str(ym) +'.png'
plt.savefig(fname) 
plt.close()  

-Plot () von Pandas (df) ist eine Wrapper-Methode von plt.plot () von matplotlib

Y-Achsenskala ↓ ex1.png

ex2) Ändern Sie die Y-Achsenskala in wissenschaftliche Notation

test1.py



import sqlalchemy
import pandas as pd
import matplotlib.pyplot as plt

#(Unterlassung)

#Diagrammzeichnung
ax = df.plot(  color=('b','r') , alpha=0.6  )
#ax = plt.gca()
ax.ticklabel_format(style="sci",  axis="y",scilimits=(0,0))

Y-Achsenskala ↓ ex2.png

・ Es wurde eine Skala wie "Data Scientist" (lacht) Mit der Notation von le6 besteht jedoch die Gefahr, dass der Chef des literarischen Systems Osan, der in der Mechanik schwach ist, ein Segen (weiße Augen) wird, so dass der nächste ex3 fein abgestimmt wurde.

ex3) Ändern Sie die Y-Achsenskala auf eine Potenznotation von 10.

test1.py



import sqlalchemy
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.ticker import ScalarFormatter

#(Unterlassung)

#Diagrammzeichnung
ax = df.plot(  color=('b','r') , alpha=0.6  )
#ax = plt.gca()
ax.yaxis.set_major_formatter(ScalarFormatter(useMathText=True))
ax.ticklabel_format(style="sci",  axis="y",scilimits=(0,0))

-Wenn Sie die Eigenschaft von ScalarFormatter auf useMathText = True setzen, ist dies eine Potenznotation von 10. ・ Eine Million ist $ 1 × 10 ^ 6 $ (** 10 nach der 6. Potenz **, dh 6 Nullen)

Y-Achsenskala ↓ ex3.png

ex4) Ändern Sie die Y-Achsenskala von 1 × 10 ^ 6 auf 1 × 10 ^ 4

test4.py



import sqlalchemy
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.ticker import ScalarFormatter

#Klasseneinstellungen * ScalarFormatter erben
class FixedOrderFormatter(ScalarFormatter):
    def __init__(self, order_of_mag=0, useOffset=True, useMathText=True):
        self._order_of_mag = order_of_mag
        ScalarFormatter.__init__(self, useOffset=useOffset, 
                                 useMathText=useMathText)
    def _set_orderOfMagnitude(self, range):
        self.orderOfMagnitude = self._order_of_mag

#(Unterlassung)

#Diagrammzeichnung
ax = df.plot(  color=('b','r') , alpha=0.6  )
#ax = plt.gca()
ax.yaxis.set_major_formatter(FixedOrderFormatter(4 ,useMathText=True))
#ax.yaxis.set_major_formatter(ScalarFormatter(useMathText=True))
ax.ticklabel_format(style="sci",  axis="y",scilimits=(0,0))

・ Abhängig von den Daten möchten Sie möglicherweise 10.000 Einheiten ($ 1 x 10 ^ 4 ) anstelle von 1 Million Notation ( 1 x 10 ^ 6 $) verwenden! ・ Als ich verschiedene Dinge wie matplotlibs Github und stackOverflow gesucht und durchsucht habe, scheint es, dass ScalarFormatter eine OrderOfMagnitude hat und hier den N-Teil der 10-ten Potenz steuert.

Y-Achsenskala ↓ ex4.png

・ 10.000 ist $ 1 × 10 ^ 4 $ (** 10 nach der 4. Potenz **, dh 4 Nullen), also ist 1 Million $ 100 × 10 ^ 4 $

Referenz-URL

[Matplotlib] Ich möchte die Skalierung der Achse als Exponentialschreibweise verwenden (via.

Recommended Posts

Ändern Sie die Y-Achsenskala von Matplotlib in die Exponentialschreibweise (10-te Potenzschreibweise).
Ändern Sie den Stil von matplotlib
Skript zum Ändern der Beschreibung von Fasta
Informationen zur X-Achsen-Notation des Balkendiagramms von Matplotlib
Ändern Sie den Dezimalpunkt der Protokollierung von, nach.
Fügen Sie mit Matplotlib Informationen am unteren Rand der Abbildung hinzu
Lassen Sie die Häkchen nach dem Dezimalpunkt in matplotlib weg
[Einführung in Python] Grundlegende Verwendung der Bibliothek matplotlib
[Python] Ändern Sie die Cache-Steuerung von Objekten, die in den Cloud-Speicher hochgeladen wurden
Eine Einführung in die Objektorientierung: Ändern Sie den internen Status eines Objekts
Ändern Sie die Lautstärke von Pepper entsprechend der Umgebung (Ton).
Der Weg zum Herunterladen von Matplotlib
Ändern Sie das Thema von Jupyter
Die Kraft der Pandas: Python
So ändern Sie die Protokollstufe von Azure SDK für Python
So ändern Sie die Farbe nur der mit Tkinter gedrückten Taste
Fühlen Sie sich frei, das Legendenlabel mit Seaborn in Python zu ändern
[Los] Erstellen Sie einen CLI-Befehl, um die Erweiterung des Bildes zu ändern
Ich habe zusammengefasst, wie die Boot-Parameter von GRUB und GRUB2 geändert werden
Ändere das Fliegengewichtsmuster in Pythonic (?) (2)
Ändern Sie den Hintergrund von Ubuntu (GNOME)
Die Leistungsfähigkeit von Kombinationsoptimierungslösern
Ändere das Fliegengewichtsmuster in Pythonic (?) (1)
Ändern Sie das Suffix von django-filter / DateFromToRangeFilter
Über die Größe der Punkte in Matplotlib
Ergänzung zur Erklärung von vscode
[Python] Ändere das Alphabet in eine Zahl
Ich möchte die Farbe ändern, indem ich auf den Streupunkt in matplotlib klicke
Wenn Sie den HTTP-Header des Testclients von Flask ändern möchten