+1 Daumen
480 Aufrufe

Ich habe einen Datensatz. Manchmal steigen einige Werte im Vergleich zu den vorherigen.


    resultsCos = [(0, 0.4235497237569061), (0.005, 0.4235497237569061), (0.01, 0.4238950276243094), (0.015, 0.42382596685082874), (0.02, 0.42375690607734806), (0.025, 0.42230662983425415), (0.03, 0.4210635359116022), (0.035, 0.41671270718232045), (0.04, 0.40835635359116024), (0.045, 0.3966850828729282), (0.05, 0.3770027624309392), (0.055, 0.3546270718232044), (0.1, 0.25041436464088396), (0.06, 0.3301795580110497), (0.065, 0.30738950276243093), (0.07, 0.2892955801104972), (0.075, 0.27603591160220997), (0.08, 0.2653314917127072), (0.09, 0.2553867403314917)]


Ich habe es geschafft, eine Grafik mit dem folgenden Code zu erstellen:


    import matplotlib.pyplot as plt
    import seaborn as sns
    # plot results Cosinus similarity
    target = resultsCos
    zip(*target)
    plt.scatter(*zip(*target))
    plt.xlabel('treshold/distance')
    plt.ylabel('accuracy')
    plt.title('Accuracy of cosine according to the distance')
    plt.tight_layout()
    plt.show()


curve.png

Aber wir bemerken nicht wirklich, wenn es eine Verbesserung gegeben hat, und ich möchte es hervorheben.

Wie ändert man die Farbe einer Kurve, wenn die Werte zunehmen? Und zurück zur ursprünglichen Farbe, wenn sie nicht zunehmen?

Was ist die Methode, um die Farbe nach dem vorherigen Wert zu ändern?
Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Wie man die Farbe einer Kurve ändert, wenn die Werte zunehmen:

Um hervorzuheben, wenn sich die Werte in Ihrem Datensatz erhöhen, könnten Sie die Daten Punkt für Punkt plotten und die Farbe jedes Punktes (oder Linienabschnitts zwischen zwei Punkten) basierend darauf ändern, ob der Wert im Vergleich zum vorherigen Punkt zugenommen hat oder nicht. Dies ermöglicht es, visuell zu erkennen, wo Verbesserungen stattfinden.

Hier ist eine Methode, wie man dies mit Matplotlib durchführen könnte:

1. Initialisieren Sie zwei Variablen für die x- und y-Werte des vorherigen Punktes.
2. Durchlaufen Sie jeden Punkt in Ihrem Datensatz.
3. Vergleichen Sie den aktuellen y-Wert mit dem vorherigen, um zu bestimmen, ob der Wert gestiegen ist oder nicht.
4. Verwenden Sie eine Bedingung, um die Farbe zu ändern, abhängig davon, ob der Wert gestiegen ist.
5. Plotten Sie eine Linie oder einen Marker für den aktuellen Punkt mit der entsprechenden Farbe.
6. Aktualisieren Sie die Variablen für die vorherigen Werte auf die aktuellen, für den nächsten Durchlauf.

Hier ist ein Python-Beispiel mit Ihrem Datensatz, das oben Genannte umzusetzen:

python
import matplotlib.pyplot as plt

# Ihr Datensatz
resultsCos = [(0, 0.4235497237569061), (0.005, 0.4235497237569061), (0.01, 0.4238950276243094), (0.015, 0.42382596685082874), (0.02, 0.42375690607734806), (0.025, 0.42230662983425415), (0.03, 0.4210635359116022), (0.035, 0.41671270718232045), (0.04, 0.40835635359116024), (0.045, 0.3966850828729282), (0.05, 0.3770027624309392), (0.055, 0.3546270718232044), (0.1, 0.25041436464088396), (0.06, 0.3301795580110497), (0.065, 0.30738950276243093), (0.07, 0.2892955801104972), (0.075, 0.27603591160220997), (0.08, 0.2653314917127072), (0.09, 0.2553867403314917)]

# Sortieren der Daten nach der x-Achse, um eine kontinuierliche Linie zu gewährleisten
resultsCos.sort(key=lambda x: x[0])

# Vorheriger Wert, initialisiert mit dem ersten Wert des Datensatzes
prev_x, prev_y = resultsCos[0]

# Farbeinstellungen
increase_color = 'red'
default_color = 'blue'

# Durchgehen des Datensatzes und Plotten der Linien zwischen den Punkten
for x, y in resultsCos[1:]:  # Startet beim zweiten Punkt
    if y > prev_y:
        # Wert hat zugenommen
        plt.plot([prev_x, x], [prev_y, y], color=increase_color)
    else:
        # Wert hat nicht zugenommen
        plt.plot([prev_x, x], [prev_y, y], color=default_color)
    prev_x, prev_y = x, y

plt.xlabel('treshold/distance')
plt.ylabel('accuracy')
plt.title('Accuracy of cosine according to the distance')

plt.tight_layout()
plt.show()


In diesem Code:

- Die Linie zwischen zwei Punkten wird rot gezeichnet, wenn der y-Wert im Vergleich zum vorherigen Punkt gestiegen ist, andernfalls wird sie blau gezeichnet.
- Der Datensatz wird zuerst nach der x-Achse sortiert, um sicherzustellen, dass die Linien in der richtigen Reihenfolge gezeichnet werden.

Durch Anpassen der Farbvariablen increase_color und default_color können Sie die spezifischen Farben an Ihren Geschmack oder Ihre Bedürfnisse anpassen.
Avatar von 4,6 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community