Ich möchte gleichzeitig einem Objekt plt.plot
Beschriftungen hinzufügen. matplotlib
verwirrt mich wirklich, da es scheint eine Million Möglichkeiten, eine Figur zu plotten. Manche Leute tun fig, ax = plt.subplots
während andere einfach plt.plot
tun. Wenn ich suche, kann ich ein paar mehr finden.Alle Legendenbeschriftungen gleichzeitig zum Plotten hinzufügen (Python)
Wie auch immer, wie kann ich alle Etiketten hinzufügen, mit den Daten in einer Zeile ohne Schleife? Ich habe mit seaborn
experimentiert, aber ich weiß nicht, wie man es macht, einfache Linie Diagramme zu machen, warum ich matplotlib
verwende.
Gibt es irgendeine Art von Verfahren in entweder matplotlib
oder seaborn
, wo Sie ihm eine Reihe von Datenpunkten (in diesem Fall 3 Proben von 80 Punkten) zusammen mit den Etikett plotten geben können diese Art von Handlung zu bekommen?
Giving meinen Code unten, so dass Sie den Datenrahmen sehen ich das Grundstück von baute, aber der wichtigste Teil ist auf die Frage nach #____________________________
kein Duplikat How do I assign multiple labels at once in matplotlib? weil die Frage direkt zu fragen ist, wie man Richte es in einer Zeile ohne Schleife ein. Das vorgeschlagene "Duplikat" ähnelt der Lösung für meine Antwort unten.
"""Softmax."""
scores = [3.0, 1.0, 0.2]
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
def softmax(x):
"""Compute softmax values for each sets of scores in x."""
return(np.exp(x)/np.sum(np.exp(x),axis=0))
# Plot softmax curvesy
x = np.arange(-2.0, 6.0, 0.1)
scores = np.vstack([x, np.ones_like(x), 0.2 * np.ones_like(x)])
DF_activation = pd.DataFrame(softmax(scores).T,index=x,columns=["x","1.0","0.2"])
#____________________________
#I have to add them like this
[plt.plot(DF_activation.index,DF_activation[c], linewidth=3,label=c) for c in DF_activation.columns]
#But I want to add them like this
#plt.plot(DF_activation.index,DF_activation,label=DF_activation.columns,linewidth=2)
plt.xlabel("x")
plt.ylabel("softmax")
plt.legend()
plt.show()
Wenn Sie mpl 1.5 haben, ist es mehr Pandas bewusst und wird Seriennamen für Etiketten extrahieren und Sie können 'ax.plot (idx, 'col1', idx, 'col2', data = df)'. Warum interessiert es dich, ob du es in einer Zeile machen kannst oder nicht? Wenn Sie das wirklich wollen, schreiben Sie einfach eine Hilfsfunktion 'def one_liner_plot (ax, df):' mit dem Forloop darin. – tacaswell
Mögliches Duplikat von [Wie weise ich mehrere Labels gleichzeitig in Matplotlib zu?] (Http://stackoverflow.com/questions/11481644/how-do-i-assign-multiple-labels-at-once-in-matplotlib) – kazemakase