Interaktive legende subplots
Verfasst: Mittwoch 2. Oktober 2019, 20:03
Hallo Zusammen,
erstmal vielen dank für das Forum und die vielen Menschen, die sich hier beteiligen - es hilft mir sehr. Ich bin neu in der Python Programmierung und stecke momentan in einem Problem der Datenvisualisierung.
Ich erstelle einen subplots(2,1) mit matplotlib und hätte gerne eine interaktive Legende (Linien können durch klick auf die Legende angezeigt werden oder nicht). Dies funktioniert bei mir leider nicht und ich komme nicht weiter, habe jetzt sowohl mit Matplotlib als auch mit mpld3 mein bestes versucht....vllt kann mir hier jemand helfen.
(Ich hatte versucht mir via handles, labels = ax.get_legend_handles_labels() die handles und labels ausgeben zu lassen und dann mit mpld3 zu arbeiten aber da funktioniert nicht.)
Vielen dank im Voraus!
Das ist mein script:
#import libraries
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
from sklearn import preprocessing
def visu1():
fig, axs = plt.subplots(2,1)
for i in range(1,13):
axs[0].plot(Data.index, Data.iloc[:,i])
axs[0].set_xlabel('')
axs[0].set_ylabel('Swing values')
axs[0].legend(Names[1:13], loc = 'upper right')
for i in range(1,13):
axs[1].plot(Data.index, Data.iloc[:,13+i])
axs[1].legend(Names[14:27], loc = 'upper right')
axs[1].set_xlabel('Time')
axs[1].set_ylabel('HEX values')
axs[0].set_xticks([0, 600000])
axs[0].set_xticklabels([Data.iloc[0,:].Time, Data.iloc[600000,:].Time])
axs[1].set_xticks([0, 600000])
axs[1].set_xticklabels([Data.iloc[0,:].Time, Data.iloc[600000,:].Time])
return fig, axs
fig, axs = visu1()
plt.show()
erstmal vielen dank für das Forum und die vielen Menschen, die sich hier beteiligen - es hilft mir sehr. Ich bin neu in der Python Programmierung und stecke momentan in einem Problem der Datenvisualisierung.
Ich erstelle einen subplots(2,1) mit matplotlib und hätte gerne eine interaktive Legende (Linien können durch klick auf die Legende angezeigt werden oder nicht). Dies funktioniert bei mir leider nicht und ich komme nicht weiter, habe jetzt sowohl mit Matplotlib als auch mit mpld3 mein bestes versucht....vllt kann mir hier jemand helfen.
(Ich hatte versucht mir via handles, labels = ax.get_legend_handles_labels() die handles und labels ausgeben zu lassen und dann mit mpld3 zu arbeiten aber da funktioniert nicht.)
Vielen dank im Voraus!
Das ist mein script:
#import libraries
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
from sklearn import preprocessing
def visu1():
fig, axs = plt.subplots(2,1)
for i in range(1,13):
axs[0].plot(Data.index, Data.iloc[:,i])
axs[0].set_xlabel('')
axs[0].set_ylabel('Swing values')
axs[0].legend(Names[1:13], loc = 'upper right')
for i in range(1,13):
axs[1].plot(Data.index, Data.iloc[:,13+i])
axs[1].legend(Names[14:27], loc = 'upper right')
axs[1].set_xlabel('Time')
axs[1].set_ylabel('HEX values')
axs[0].set_xticks([0, 600000])
axs[0].set_xticklabels([Data.iloc[0,:].Time, Data.iloc[600000,:].Time])
axs[1].set_xticks([0, 600000])
axs[1].set_xticklabels([Data.iloc[0,:].Time, Data.iloc[600000,:].Time])
return fig, axs
fig, axs = visu1()
plt.show()