Grafische ausgabe mehrfarbig

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
AloneWolf
User
Beiträge: 3
Registriert: Sonntag 10. Dezember 2017, 16:56

Hallo zusammen und schönen 2. Advent :wink:

Ich bin absoluter Python Neuling, möchte mich aber mit dem Thema beschäftigen da es mich Interessiert und Python auch in der Berufsschule benutzt wird. Ich bin gerade dabei was zu schreiben, was 2 Preise vergleicht, in dem Fall von Angeboten. Diese werden auch schon grafisch in form eines einfaches Diagramm ausgegeben. Jetzt wollte ich fragen, wie ich die Ausgabe 2-farbig machen kann (linker Balken blau, rechter rot etc.) Perfekt wäre es, wenn Python das günstigere Angebot in z.B. grün und das teuere in rot ausgibt.
Ich danke euch schon mal im vor raus und hoffe viel lernen zu können. :)
Arbeit bisher:

Code: Alles auswählen

import matplotlib.pyplot as plt


def Endpreis(Grundpreis, Stueckpreis, Stueckzahl):
    return Grundpreis + Stueckpreis * Stueckzahl

#Eingabe

Grundpreis1 = float(input("Grundpreis:"))
Stueckpreis1 = float(input("Stückpreis:"))
Stueckzahl1 = int(input("Stückzahl:"))

Grundpreis2 = float(input("Grundpreis:"))
Stueckpreis2 = float(input("Stückpreis:"))
Stueckzahl2 = int(input("Stückzahl:"))

#Verarbeitung
Pr1 = Endpreis(Grundpreis1, Stueckpreis1, Stueckzahl1)
Pr2 = Endpreis(Grundpreis2, Stueckpreis2, Stueckzahl2)

#Ausgabe

y = [Pr1, Pr2]
N = len(y)
x = range(N)
width = 1/1.05
plt.bar(x,y, width, color="black")

narpfel
User
Beiträge: 644
Registriert: Freitag 20. Oktober 2017, 16:10

Moin,

man kann für `color` nicht nur Strings angeben, sondern auch Listen von Farben. Und wenn das günstigere immer grün sein soll, dann musst du das halt so programmieren. :wink: Das Stichwort dazu wäre `if`.

Sonstige Anmerkungen zum Code: Variablen und Funktionen werden in Python üblicherweise `klein_mit_unterstrichen` geschrieben (`CamelCase` ist Klassennamen vorbehalten). Siehe auch PEP 8. Gerade als Anfänger kann es Sinn machen, das wenigstens kurz zu überfliegen, damit man sich nicht gleich schlechte Angewohnheiten angewöhnt.

Viel Spaß noch!
AloneWolf
User
Beiträge: 3
Registriert: Sonntag 10. Dezember 2017, 16:56

narpfel hat geschrieben:Moin,

man kann für `color` nicht nur Strings angeben, sondern auch Listen von Farben. Und wenn das günstigere immer grün sein soll, dann musst du das halt so programmieren. :wink: Das Stichwort dazu wäre `if`.

Sonstige Anmerkungen zum Code: Variablen und Funktionen werden in Python üblicherweise `klein_mit_unterstrichen` geschrieben (`CamelCase` ist Klassennamen vorbehalten). Siehe auch PEP 8. Gerade als Anfänger kann es Sinn machen, das wenigstens kurz zu überfliegen, damit man sich nicht gleich schlechte Angewohnheiten angewöhnt.

Viel Spaß noch!
Danke dir, du hast mir schon sehr geholfen, jetzt habe ich noch ein einfaches Problem, bei dem mir nicht klar ist, was falsch ist. Bei dem folgenden if zeigt er mir invalid syntax, woran liegt dies?

Code: Alles auswählen

Pr1 = Endpreis(Grundpreis1, Stueckpreis1, Stueckzahl1)
Pr2 = Endpreis(Grundpreis2, Stueckpreis2, Stueckzahl2)

if Pr1 < Pr2
    je_nachdem = [Pr2, Pr1]
elif Pr1 > Pr2
    je_nachdem = [Pr1, Pr2]
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

@AloneWolf: `if`s werden auch mit einem Doppelpunkt abgeschlossen. Was soll im Fall Pr1 == Pr2 passieren?
narpfel
User
Beiträge: 644
Registriert: Freitag 20. Oktober 2017, 16:10

@AloneWolf: Ich würde auch eher die Liste mit den Farben mit dem `if` erstellen. Sonst ist mal das zuerst eingegebene links und mal das danach eingegebene.
AloneWolf
User
Beiträge: 3
Registriert: Sonntag 10. Dezember 2017, 16:56

Alles klar Leute, vielen dank für die einfach erklärten, hilfreichen und schnellen antworten, jetzt funktioniert alles, erster eindruck vom Forum: 1+* :mrgreen:
Antworten