Python: Balkendiagramm beim Sortieren?


25.01.2020, 16:04

Ich hab es geschafft, dass nach jedem Durchgang die Balken rot und blau angezeigt werden, jedoch werden die Balken von index 1 aufwärts rot angezeigt.

Wie schaffe ich es dasselbe vom Ende der Liste in Richtung index 0 zu machen statt dass es von index 0 anfängt und in Richtung ende geht?

Mein Programm sieht mittlerweile so aus:

def Sortierverfahren_Bubblesort(Liste):

   n = len(Liste)

   for i in range(n):

       for j in range(0, n-i-1):

           if Liste[j] > Liste[j+1] :

               Liste[j], Liste[j+1] = Liste[j+1], Liste[j]  

       Balkendiagramm(Liste, i, len(Liste))

   

def Balkendiagramm(Liste ,i ,j):

   bar_width = 0.5

   colors = []

   for k in range(len(Liste)):

       if i <= k <= j:

           colors.append("b")

       else:

           colors.append("r")

   index = np.arange(len(Liste))

   plt.bar(index, Liste, bar_width, color=colors)

   plt.xticks(index, range(len(Liste)))

   print("Balkendiagramm: ")

   plt.show()

Sortierverfahren_Bubblesort(Liste)

print("Sortierte Liste: " ,Liste)

           

#Balkendiagramm

import matplotlib.pyplot as plt

import numpy as np

bar_width = 0.5

index = np.arange(len(Liste))

plt.bar(index, Liste, bar_width, color="red")

plt.xticks(index, range(len(Liste)))

print("Balkendiagramm: ")

plt.show()

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet
 jedoch werden die Balken von index 1 aufwärts rot angezeigt.

Das passiert in Deinem Aufruf

       Balkendiagramm(Liste, i, len(Liste))

Willst Du stattdessen rote Balken zwischen 0 und i, ändere diesen Aufruf:

       Balkendiagramm(Liste, 0, i)