Wie markiert man einzelne Punkte in einem plot

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
gamma
User
Beiträge: 15
Registriert: Dienstag 30. April 2019, 09:32

Ich habe ein Datenset (Credit card fraud detection dataset) welches ich in einem Plot darstelle. Ich würde nun gerne Werte an einer Stelle im Plot hervorheben, also zum Beispiel sollen die Werte an den Stellen [4,70,149] eingekringelt werden. Die Position der Werte ist in einer Liste gespeichert. Wie kann ich das mit der matplotlib erreichen?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Zb indem du einen zweiten Scatter-Plot nur mit den hervorgehobenen Werten machst.
gamma
User
Beiträge: 15
Registriert: Dienstag 30. April 2019, 09:32

Ja aber dann bekomme ich ein Problem mit den Dimensionen. Im Datenset gibt es 284807 Werte. Diese plotte ich einfach:

Code: Alles auswählen

plt.plot(df['Amount'])
492 Indices würde ich gerne markieren. Das wären zb der Index 541,623,..... Wie wähle ich nun die x Achse, sodass es die Größe von 492 hat und gleichzeitig mit der x Achse des 1.Plots übereinstimmt?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Man gibt beim Plottern normalerweise zwei Sequenzen an. Die Werte auf der x-, und wo auf der y-Achse die liegen. Wenn du nur einen a gibts, dann wird in der Dokumentation stehen, was matplotlip für y dann annimmt. Ich vermute mal einfach 0..n-1. Oder 1..n.

Und jetzt musst du eben die zweite Sequenz explizit angeben. Damit die richtig positioniert sind.
gamma
User
Beiträge: 15
Registriert: Dienstag 30. April 2019, 09:32

Ja das ist mir durchaus bewusst, ich hatte selbigen plot auch über die Anzahl der Werte als x Achse. Das Problem ist aber, dass ich nicht die Indizes welche ich markieren möchte nicht im selben Plot darstellen kann weil die x Achse für diesen Plot anders ist.
Hier mein ganzer Code:

Code: Alles auswählen

fraud = []
count = 0
countx = 0
xaxis = []
xaxis_marker = []
for i in df['Class']:
    if i !=0:
        fraud.append(coun])
        xaxis_marker.append(countx)
        countx = countx+1
    xaxis.append(count)
    count = count +1

plt.plot(xaxis,df['Amount'],ls='-')
plt.plot(xaxis_marker,fraud)
Könntest du mir vielleicht an einem Bsp Code zeigen wie du das genau meinst?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das sind syntax-Fehler drin, und es gibt keine Importe. Das ist also bestimmt nicht der Code, der irgendetwas tut, selbst wenn es das falsche ist.
gamma
User
Beiträge: 15
Registriert: Dienstag 30. April 2019, 09:32

Die Importe kann man sich bei diesen Code wohl denken und die Syntax Fehler sind beim kopieren passiert. Ich glaube es ist ganz verständlich was der Code machen soll. Wenn Sie mir nicht helfen wollen (oder einfach nicht können), lassen Sie es bitte bleiben.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich hätte funktionierenden Code nehmen, adaptieren, und daran die Lösung darstellen können. Mit weniger Arbeit für mich. Angesichts meiner kostenfreien Leistung hier eine Priorität.

Und jetzt weiß ich, wo deine Prioritäten liegen. 👋
gamma
User
Beiträge: 15
Registriert: Dienstag 30. April 2019, 09:32

Ob du das tatsächlich hättest können weiß ich nicht, weil du mir bis jetzt eher weniger hilfreiche Tips gegeben hast. Es ging um einen Tipfehler und darum, dass ich die (offensichtlich) verwendete matplotlib nicht in den Code geschrieben habe. Wenn dir bereits das zu viel Arbeit ist dann danke, bemüh dich nicht darum. Viel Erfolg im beruflichen Leben.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Geht ganz gut...

Bild
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

gamma hat geschrieben: Sonntag 3. Januar 2021, 14:58 Ob du das tatsächlich hättest können weiß ich nicht, weil du mir bis jetzt eher weniger hilfreiche Tips gegeben hast. Es ging um einen Tipfehler und darum, dass ich die (offensichtlich) verwendete matplotlib nicht in den Code geschrieben habe. Wenn dir bereits das zu viel Arbeit ist dann danke, bemüh dich nicht darum. Viel Erfolg im beruflichen Leben.
Es gibt Leute, fuer die der Hinweis, wie man mit den zur Verfuegung stehenden Werkzeugen das Problem loest, schon aursreichend ist. Das das bei dir nicht der Fall ist, kann man vorher nicht ahnen. Wenn dann schon ein sauberes Copy & Paste zu viel des Guten ist, und du gleich pampig wirst ... ich bedaure jetzt schon deine Kollegen, die mit dir mal zusammen arbeiten muessen.
gamma
User
Beiträge: 15
Registriert: Dienstag 30. April 2019, 09:32

Gratuliere, du kannst ein Bild aus dem Internet kopieren....
Stehen solche skills auch in deinem Lebenslauf??
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Genau. Red dir ein, ich haette das nur kopiert :D Aber selbst wenn dem so waere - immerhin steht in meinem Lebenslauf "kann zu gegebenen Problemstellungen relevante Inhalte recherchieren". Bei dir steht dann wohl eher "pampt sinnlos im Netz rum, und kriegt seine Hausaufgaben nicht hin. Hat sich also noch nicht mal stets bemueht."
gamma
User
Beiträge: 15
Registriert: Dienstag 30. April 2019, 09:32

Bist du 12? Du schreibst nämlich wie ein verbittertes Schulmädchen das sich am Schulhof behaupten möchten. Mir wird die Konversation allerdings jetzt etwas zu Mühsam deswegen lass ich es bleiben und geben dir zum Abschluss den Tipp dich bei Mutti auszuheulen und im wahren Leben lieber etwas ruhiger zu sein. Wenn du sprichst wirkst du nämlich alles andere als ein angenehmer Zeitgenosse und ich kann mir beim besten Willen nicht vorstellen das du Freunde hast.
In diesem Sinne, schönen Sonntag noch
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ahhh, und jetzt greifen wir gleich noch in die mysogyne Schublade. Denn ein RICHTIGER MANN beleidigt andere, indem er ihnen unterstellt, ein MAEDCHEN zu sein. Da bin ich ja gleich noch ein kleines bisschen gluecklicher, dir nicht deinen Code vorgekaut zu haben....
gamma
User
Beiträge: 15
Registriert: Dienstag 30. April 2019, 09:32

Ich weine um den Intellekt der Menschen wenn du dem Durchschnitt entsprechen solltest...
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Einer von uns beiden hat den Intellekt, ein solches Problem zu loesen. Der andere nicht. Das ist denke ich wirklich ein Grund zum heulen fuer dich. Du musst jetzt noch ein bisschen lernen, deine eigenen Gefuehle zu reflektieren - und dann kommt vielleicht die Erkenntnis, dass man mit deiner Einstellung, Leuten die einem freiwillig helfen, pampig zu kommen, weil die sonst darauf einfach keine Lust haben, nicht so weit kommt, wie man sich das ausgemalt hat.

Und wie oft kuendigst du jetzt noch an, jetzt ist aber wirklich Ende hier, und schoenen Sonntag, und so? Ein Mann, kein Wort, oder wie war das?
Benutzeravatar
__blackjack__
User
Beiträge: 13927
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

🍿
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Meine Arbeit an ESP32S2 FFT Darstellung ist ein bisschen langweiliger als gedacht... da kommt Ablenkung wie gerufen :)
Benutzeravatar
__blackjack__
User
Beiträge: 13927
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Es ist Sonntag, da kann man auch mal spielen. 😉
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
Antworten