Używam matplotlib
do wykreślania danych (używania plot
i errorbar
funkcji) z Pythona. Muszę wykreślić zestaw całkowicie oddzielnych i niezależnych wykresów, a następnie dostosować ich ylim
wartości, aby można je było łatwo porównać wizualnie.
W jaki sposób mogę pobrać ylim
wartości z każdego wykresu, tak aby uzyskać odpowiednio minimalne i maksymalne wartości dolnej i górnej wartości ylim oraz dostosować wykresy, aby można je było porównać wizualnie?
Oczywiście mógłbym po prostu przeanalizować dane i wymyślić własne ylim
wartości niestandardowe ... ale chciałbym matplotlib
to zrobić za mnie. Jakieś sugestie, jak łatwo (i skutecznie) to zrobić?
Oto moja funkcja Pythona, która wykreśla przy użyciu matplotlib
:
import matplotlib.pyplot as plt
def myplotfunction(title, values, errors, plot_file_name):
# plot errorbars
indices = range(0, len(values))
fig = plt.figure()
plt.errorbar(tuple(indices), tuple(values), tuple(errors), marker='.')
# axes
axes = plt.gca()
axes.set_xlim([-0.5, len(values) - 0.5])
axes.set_xlabel('My x-axis title')
axes.set_ylabel('My y-axis title')
# title
plt.title(title)
# save as file
plt.savefig(plot_file_name)
# close figure
plt.close(fig)
źródło
plt.gca().get_ylim()
jest to przydatne - nie ma potrzeby definiowania dodatkowych osi.fig, ax = plt.subplots()
a następnie przekierowywać wszystkie moje funkcje przez jednąfig
lubax
Jeśli używasz
plt
interfejsu API bezpośrednio, możesz całkowicie uniknąć wywołań osi:źródło
Wykorzystując powyższe dobre odpowiedzi i zakładając, że używasz tylko plt, jak w
następnie możesz uzyskać wszystkie cztery granice wykresu, korzystając
plt.axis()
z poniższego przykładu.Powyższy kod powinien dać następujący wykres wyjściowy.
źródło