Как мне ограничить размер границы на графике matplotlib?

StackOverflow https://stackoverflow.com/questions/1203639

  •  05-07-2019
  •  | 
  •  

Вопрос

Я делаю несколько довольно больших графиков, и пробел на границе занимает много пикселей, которые будут лучше использоваться данными. Кажется, что граница растет с ростом графика.

Вот основные принципы моего графического кода:

        import matplotlib
        from pylab import figure

        fig = figure()
        ax = fig.add_subplot(111)
        ax.plot_date((dates, dates), (highs, lows), '-', color='black')
        ax.plot_date(dates, closes, '-', marker='_', color='black')

        ax.set_title('Title')
        ax.grid(True)
        fig.set_figheight(96)
        fig.set_figwidth(24)

Есть ли способ уменьшить размер границы? Может быть, установка где-нибудь, которая позволила бы мне держать границу на постоянном 2 дюйма или около того?

Это было полезно?

Решение

Поскольку создается впечатление, что вы используете только один подзаговор, вы можете пропустить add_subplot и перейти прямо к add_axes . Это позволит вам указать размер осей (в относительных координатах фигуры), чтобы вы могли сделать его настолько большим, насколько вы хотите, внутри фигуры. В вашем случае это будет означать, что ваш код будет выглядеть примерно так

    import matplotlib.pyplot as plt

    fig = plt.figure()

    # add_axes takes [left, bottom, width, height]
    border_width = 0.05
    ax_size = [0+border_width, 0+border_width, 
               1-2*border_width, 1-2*border-width]
    ax = fig.add_axes(ax_size)
    ax.plot_date((dates, dates), (highs, lows), '-', color='black')
    ax.plot_date(dates, closes, '-', marker='_', color='black')

    ax.set_title('Title')
    ax.grid(True)
    fig.set_figheight(96)
    fig.set_figwidth(24)

Если вы хотите, вы можете даже поместить параметры в set_figheight / set_figwidth непосредственно в вызове figure () .

scroll top