Testcontext не распознается как Testcontext с точки зрения maven

Очевидным способом является просто установить ограничения на то, что вы хотите. (например, ax.axis([xmin, xmax, ymin, ymax]))

Если вы не хотите беспокоиться об обнаружении пределов вручную, у вас есть несколько вариантов ...

Как несколько человек (tillsten, Yann и Vorticity) упомянули, если вы можете построить функцию, которую хотите проигнорировать последним, тогда вы можете отключить автомасштабирование перед ее печатью или передать scaley=False kwarg в plot

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
x1 = np.linspace(-1,1,100)

ax.plot(x1, np.sin(x1))
ax.plot(x1, np.sin(x1 / 2.0))
ax.autoscale(False)         #You could skip this line and use scalex=False on
ax.plot(x1, 3 * np.sin(x1)) #the "theoretical" plot. It has to be last either way

fig.savefig('test.pdf')

Примечание. что вы можете отрегулировать zorder последнего графика так, чтобы он рисовался в «середине», если вы хотите контролировать это.

Если вы не хотите зависеть от порядка, и вы просто укажите список строк для автомасштабирования на основе, тогда вы можете сделать что-то вроде этого: (Примечание. Это упрощенная версия, предполагающая, что вы имеете дело с объектами Line2D, а не с художниками matplotlib вообще.)

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.transforms as mtransforms

def main():
    fig, ax = plt.subplots()
    x1 = np.linspace(-1,1,100)

    line1, = ax.plot(x1, np.sin(x1))
    line2, = ax.plot(x1, 3 * np.sin(x1))
    line3, = ax.plot(x1, np.sin(x1 / 2.0))
    autoscale_based_on(ax, [line1, line3])

    plt.show()

def autoscale_based_on(ax, lines):
    ax.dataLim = mtransforms.Bbox.unit()
    for line in lines:
        xy = np.vstack(line.get_data()).T
        ax.dataLim.update_from_data_xy(xy, ignore=False)
    ax.autoscale_view()

if __name__ == '__main__':
    main()

enter image description here [/g0]

0
задан mcfly soft 18 January 2019 в 08:02
поделиться