Matplotlib wurde in die verstümmelte Eliminierungsmethode eingeführt, aber um ehrlich zu sein, habe ich überhaupt keine Lust, sie zu verwenden.
Ich frage mich, ob es mehr als 30 Argumente gibt, die nur mit der Plotfunktion angegeben werden können. http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plot
Property Description
agg_filter unknown
alpha float (0.0 transparent through 1.0 opaque)
animated [True | False]
antialiased or aa [True | False]
axes an Axes instance
clip_box a matplotlib.transforms.Bbox instance
clip_on [True | False]
...
Trotzdem ist das Ergebnis so ein beschissener Graph.
Es scheint, dass Sie, wenn Sie Ihr Bestes geben, schöne Grafiken zeichnen können, aber Sie haben nicht viel Motivation zu lernen.
Hier kommt seaborn ins Spiel.
Seaborn is a Python visualization library based on matplotlib. It provides a high-level interface for drawing attractive statistical graphics.
Mit anderen Worten, es bietet eine übergeordnete (abstrahierte) Schnittstelle als Wrapper für matplotlib.
Es ist wie ein Anfragepaket für urllib.
Die Benutzeroberfläche ist ebenfalls wichtig, aber wenn Sie eine solche Heatmap mit etwa 10 Codezeilen zeichnen können, werden Sie zum Lernen motiviert sein.
Ich habe jedoch nicht die Daten, die plötzlich eine Heatmap zu zeichnen scheinen, daher werde ich versuchen, ein grundlegendes Diagramm mit den Stromverbrauchsdaten meiner Haushaltsgeräte zu zeichnen.
$Katzenkühlschrank.csv
No.,DateTime,Watt,kWh
1,2015/03/02-23:25:44,58.9,0
2,2015/03/02-23:35:44,50.6,0.01
3,2015/03/02-23:45:44,50.3,0.02
4,2015/03/02-23:55:44,61.7,0.02
5,2015/03/03-00:05:44,72.4,0.03
6,2015/03/03-00:15:44,51.3,0.04
7,2015/03/03-00:25:44,47.7,0.05
8,2015/03/03-00:35:44,47.6,0.06
9,2015/03/03-00:45:44,20.2,0.06
10,2015/03/03-00:55:44,40.5,0.06
Dies ist das von Sanwa Supply TAP-TST10 erfasste Protokoll. Der Nachteil ist, dass Sie sich nicht in Echtzeit anmelden können, aber ... nun, es ist billig.
Wenn Sie dies mit Pandas in DataFrame konvertieren, wird es so sein.
import pandas as pd
data = pd.read_csv("Kühlschrank.csv")
print(data)
No. DateTime Watt kWh
0 1 2015/03/02-23:25:44 58.9 0.00
1 2 2015/03/02-23:35:44 50.6 0.01
2 3 2015/03/02-23:45:44 50.3 0.02
3 4 2015/03/02-23:55:44 61.7 0.02
4 5 2015/03/03-00:05:44 72.4 0.03
5 6 2015/03/03-00:15:44 51.3 0.04
6 7 2015/03/03-00:25:44 47.7 0.05
7 8 2015/03/03-00:35:44 47.6 0.06
8 9 2015/03/03-00:45:44 20.2 0.06
9 10 2015/03/03-00:55:44 40.5 0.06
10 11 2015/03/03-01:05:44 59.4 0.07
...
[1441 rows x 4 columns]
print(data.DateTime)
0 2015/03/02-23:25:44
1 2015/03/02-23:35:44
2 2015/03/02-23:45:44
3 2015/03/02-23:55:44
4 2015/03/03-00:05:44
5 2015/03/03-00:15:44
6 2015/03/03-00:25:44
7 2015/03/03-00:35:44
8 2015/03/03-00:45:44
9 2015/03/03-00:55:44
10 2015/03/03-01:05:44
...
Name: DateTime, dtype: object
print(data['Watt'])
0 58.9
1 50.6
2 50.3
3 61.7
4 72.4
5 51.3
6 47.7
7 47.6
8 20.2
9 40.5
10 59.4
Name: Watt, dtype: float64
Der Code, um dies mit Seaborn zu visualisieren, lautet wie folgt.
import seaborn as sns
import pandas as pd
data = pd.read_csv("Kühlschrank.csv")
#Verwenden Sie ein relativ einfaches Punktdiagramm
ax = sns.pointplot(
x='DateTime', #DateTime auf der x-Achse
y='Watt', #Watt auf der y-Achse
data=data, #Geben Sie DataFrame an
markers=['']) #Markierungen ausblenden, um Daten zu zeichnen
#Da in Richtung der x-Achse zu viele Daten vorhanden sind, werden Beschriftungen jeden Tag ausgedünnt (Daten werden nicht ausgedünnt).
xlabels = [datetime.split('-')[0]
if list(data.DateTime).index(datetime) % 144 is 0 else ''
for datetime in data.DateTime]
#Stellen Sie die Beschriftung der x-Achse ein und drehen Sie die Beschriftungsanzeige um 90 Grad
ax.set_xticklabels(xlabels, rotation='vertical')
#In PNG-Datei exportieren
sns.plt.savefig('Kühlschrank.png')
Die Daten sind zu verstopft ...
Wie folgt etwas ausdünnen.
data = pd.read_csv("Kühlschrank.csv")[:360]
Diesmal fühlt es sich gut an.
Der Nennstromverbrauch des Kühlschranks wird mit ca. 110 W angegeben. Wenn Sie also den Spitzenwert von 114,0 W sehen, entspricht er fast den Angaben.
data.Watt.mean()
44.557499999999997
data.Watt.min()
2.2999999999999998
data.Watt.max()
114.0
Was ist der Stromverbrauch?
import seaborn as sns
import pandas as pd
data = pd.read_csv("Kühlschrank.csv")
#Verwenden Sie ein relativ einfaches Punktdiagramm
ax = sns.pointplot(
x='DateTime', #DateTime auf der x-Achse
y='kWh', #kWh (integrierter Stromverbrauch) auf der y-Achse
data=data, #Geben Sie DataFrame an
markers=['']) #Markierungen ausblenden, um Daten zu zeichnen
#Da in Richtung der x-Achse zu viele Daten vorhanden sind, werden Beschriftungen jeden Tag ausgedünnt (Daten werden nicht ausgedünnt).
xlabels = [datetime.split('-')[0]
if list(data.DateTime).index(datetime) % 144 is 0 else ''
for datetime in data.DateTime]
#Stellen Sie die Beschriftung der x-Achse ein und drehen Sie die Beschriftungsanzeige um 90 Grad
ax.set_xticklabels(xlabels, rotation='vertical')
#In PNG-Datei exportieren
sns.plt.savefig('Kühlschrank kWh.png')
Sie können sehen, dass der Stromverbrauch etwa 1 kWh / Tag beträgt.
data.kWh.max() / 10.0
1.0589999999999999
Seaborn API-Referenz und [Galerie](http://stanford.edu/~mwaskom/software/seaborn/examples/index. Bei HTML) ist die Spannung hoch.
Zuallererst muss ich in der Lage sein, die Werkzeuge zu beherrschen.
Recommended Posts