Mit Python Tabelle erstellen und erste Zeile farblich gestalten

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
mgm841
User
Beiträge: 19
Registriert: Montag 7. Mai 2018, 12:15

Hallo zusammen, ich habe ein Python Code mit Pandas und Matplotlib geschrieben und wollte eine Excel Datei einlesen und diese als Tabelle plotten. Soweit funktioniert es auch, nur kann ich es nicht farblich ändern. Ich wollte die erste Zeile farblich hervorheben, damit es übersichtlicher ist. Damit man ein Überblick hat, habe ich mein Code unten aufgelistet mit Fehler Code:

Code: Alles auswählen

import matplotlib.pyplot as plt
import pandas as pd
from pandas.plotting import table


#first_page
DATA_FILE = "C:/test/corr.xlsx"

df = pd.read_excel("C:/test/corr.xlsx")
s = df.iloc[0:15, 0:10]

fig, ax = plt.subplots(figsize=(5, 1))
plt.suptitle("1.Excel-Daten", fontsize =15)
ax.xaxis.set_visible(False)
ax.yaxis.set_visible(False)  
ax.set_frame_on(False)  
tabla = table(ax, s, colWidths=[0.30]*len(df.columns), rowColours='r')
tabla.auto_set_font_size(False) 
tabla.set_fontsize(15)

tabla.scale(1.5,1.5)
plt.show

Und hier die Fehlerbeschreibung:

Code: Alles auswählen

runfile('C:/Users/ucarm.lokal/.spyder-py3/untitled17.py', wdir='C:/Users/ucarm.lokal/.spyder-py3')
Traceback (most recent call last):

  File "<ipython-input-6-567501243038>", line 1, in <module>
    runfile('C:/Users/ucarm.lokal/.spyder-py3/untitled17.py', wdir='C:/Users/ucarm.lokal/.spyder-py3')

  File "C:\Anaconda\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
    execfile(filename, namespace)

  File "C:\Anaconda\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/ucarm.lokal/.spyder-py3/untitled17.py", line 25, in <module>
    tabla = table(ax, s, colWidths=[0.30]*len(df.columns), rowColours='r', colColours = 'r')

  File "C:\Anaconda\lib\site-packages\pandas\plotting\_tools.py", line 65, in table
    colLabels=colLabels, **kwargs)

  File "C:\Anaconda\lib\site-packages\matplotlib\table.py", line 652, in table
    text=colLabels[col], facecolor=colColours[col],

IndexError: string index out of range
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

`rowColours` ist Mehrzahl, ich vermute doch mal ganz stark das da nicht *eine* Farbe übergeben werden muss, sondern eine Sequenz mit einer Farbe pro Tabellenzeile.

Edit: Der Traceback passt übrigens nicht zum gezeigten Code. Das ist nicht gut.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
mgm841
User
Beiträge: 19
Registriert: Montag 7. Mai 2018, 12:15

__blackjack__ hat geschrieben: Dienstag 19. Juni 2018, 12:17 `rowColours` ist Mehrzahl, ich vermute doch mal ganz stark das da nicht *eine* Farbe übergeben werden muss, sondern eine Sequenz mit einer Farbe pro Tabellenzeile.

Edit: Der Traceback passt übrigens nicht zum gezeigten Code. Das ist nicht gut.
Und wie löse ich das am besten, bin da bisschen überfragt, bin neu bei Python. Stimmt mein traceback beinhaltet mein Code colColours, dass habe ich nur genommen um zu schauen ob der Fehler dann immernoch bleibt. Der ändert sich nämlich nicht.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Na das löst Du in dem Du eine Sequenz mit einer Farbe pro Zeile übergibst‽
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten