Seite 1 von 1

Python Seaborn Colorbar einer Heatmap mit Umrandung

Verfasst: Dienstag 9. Juni 2020, 18:22
von N0eyed33r
Hallo zusammen,

ich habe an einer Heatmap gearbeitet und möchte einen simplen Rahmen um die Colorbar generieren. Weiß aber weder wie noch habe ich Lösungen im Netz bzgl des Themas gefunden. Kennt hier jmd. eine Lösung? Muss ich mich von Seaborn abwenden und nur mit Matplotlib arbeiten?

Hier ist der der Code :

Code: Alles auswählen

# library
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

# import data
data = pd.read_csv("C:/Users/.../xxx.csv", 
                   encoding= 'unicode_escape',delimiter =';')

df1 = data [['Voltage','Time', 'dT']]

# generate matrix for plotting
heatmap1_data = pd.pivot_table(df1, values = 'dT',
                                  index = 'Voltage',
                                  columns = 'Time')

# generate heatmap
ax = sns.heatmap(heatmap1_data, 
                 cmap="PuRd", 
                 linewidths=0.25, 
                 annot = True,
                 cbar_kws={'label': 'Temperature Difference (K)'}, 
                 vmin=0, 
                 vmax=10)

# invert y axis
plt.setp(ax.patches, linewidth=1)
ax.invert_yaxis()

# border added to axis
for _, spine in ax.spines.items():
    spine.set_visible(True)

plt.xlabel('Time (min)')
plt.ylabel('Voltage (V)')
Des Weiteren hatte Seaborn keine Linien um meine Heatmap gezogen. Dazu konnte ich folgenden Codesnippet nutzen

Code: Alles auswählen

# border added to axis
for _, spine in ax.spines.items():
    spine.set_visible(True)
Wenn ich wüsste warum es mit diesem Snippet und dem folgenden :

Code: Alles auswählen

# invert y axis
plt.setp(ax.patches, linewidth=1)
ax.invert_yaxis()
funktioniert, dann könnte ich rein theoretisch auch Kommandos von Matplotlib integrieren oder ? (so etwas wie plt.XYZ)

Zum Schluss gibt es noch ein Bild der Heatmap:
Bild