Als ich Plots machen, ich brauche immer x, ylabels, Titel zu setzen, Legende usw. ihr eine Einstellung von einer langweilig, also habe ich versucht, sie in eine einzige Hilfsmethode zu setzen:Python & Matplotlib: Vereinfachte Plot-Konfiguration (Xlabel, Titel, Legende ...)?
def plt_configure(ax=None, xlabel='', ylabel='', title='', legend=False, tight=False, figsize=False):
if ax == None :
ax=plt.gca()
plt.suptitle(title)
else:
ax.set_title(title)
ax.set_xlabel(xlabel)
ax.set_ylabel(ylabel)
if legend:
if isinstance(legend, dict):
ax.legend(**legend)
else:
ax.legend()
if tight:
if tight == 'xtight' or tight == 'x':
ax.autoscale(enable=True, axis='x', tight=True)
elif tight == 'ytight':
ax.autoscale(enable=True, axis='y', tight=True)
else:
ax.axis('tight')
if figsize:
plt.gcf().set_size_inches(figsize)
es also kann verwendet werden wie
# Use Case 1
plt_configure(xlabel='Direction', ylabel='Difference with ECDF',
legend={'loc':'best'},figsize=(8,2.5))
# Use Case 2
plt_configure(title='Direction Distribution Comparison',
xlabel='Direction',ylabel='Frequency', legend={'loc': 'best'} ,tight='xtight',figsize = (8,2.5))
Ich möchte wissen, ob es eine elegantere Möglichkeit gibt, dies zu tun? (Definieren Sie den Xlabel, Titel effizienter und dann setzen sie eins nach dem anderen)
Auch die Hilfsmethode, die ich gemacht habe, sieht ziemlich komplex und lang aus. Gibt es da eh einfach so?
Nach dem Vorbild dessen, was ich in meinem Helfer tun. Kleiner Unterschied ist, dass ich den Helfer als separates Python-Modul angeordnet habe, das ich in mein Client-Skript importiere. Alle Plot-Parameter, die ich ändern möchte, habe ich als Globals (oder Sie könnten Klassenmitglieder machen, wenn Sie Globals nicht mögen). Ich habe Zugriff auf diese Parameter oder Sie können nur explizit darauf verweisen. Ich habe dann mehrere verschiedene Plot-Funktionen. Damit habe ich alle Verweise auf MATPLOTLIB aus dem Client-Code versteckt. –
@PeterBingham Gibt es ein Beispiel, das ich sehen kann? – cqcn1991
Das hat ein paar Probleme (ich hacks Änderungen), aber es ist mein Hilfsmodul und könnte Ihnen ein paar Ideen geben. Einige der Parameter sind globale (oben) und einige sind Funktionsparameter, aber Sie könnten alles global abhängig von Ihren Nutzungsbedürfnissen machen: https://github.com/petersbingham/ProtoQScat/blob/master/utilities/general/simpplot.py –