Установка фиксированной высоты размера фигуры Matplotlib - PullRequest
0 голосов
/ 06 мая 2020

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

import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter
import pandas as pd


def show_graph(data, file_name):
    plt.figure(figsize=[10, 8])
    plt.xticks(rotation=90)
    ax = plt.axes()
    ax.plot(
        data.index,
        data[data.columns[0]],
        marker='o',
        linewidth=3,
        markersize=8
    )
    plt.title("test", pad=12)
    plt.savefig(file_name, bbox_inches="tight")


df = pd.DataFrame(data=[7.0, 12.0, 2.0, 6.0, 6.0, 10.0, 2.0], columns=["value"])
show_graph(df, "first")
df1 = pd.DataFrame(data=[0.0, 0.0, 100.0, 0.0, 48.0, 0.0, 100.0], columns=["value"])
show_graph(df1, "second")
df2 = pd.DataFrame(data=[0.0, 0.0, 100.0, 0.0, 48.0, 0.0, 100.0], columns=["value"])
show_graph(df2, "third")

First Figure Second Figure Third Image

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Если это «весь мир» данных и поведение Dynami c не требуется, тогда, если я правильно вас понял, используйте это (добавление ylim ):

def show_graph(data):
    plt.figure(figsize=[10, 8])
    plt.xticks(rotation=90)
    ax = plt.axes()
    ax.plot(
        data.index,
        data[data.columns[0]],
        marker='o',
        linewidth=3,
        markersize=8
    )
    plt.ylim(0, 105)
    plt.title("test", pad=12)
    plt.show()
0 голосов
/ 06 мая 2020

У меня тоже все они были одного роста. Попробуйте следующее решение и посмотрите, работает ли оно для вас.

def show_graph(data):
    fig, ax = plt.subplots(figsize=[10, 8])
    plt.xticks(rotation=90)
    ax.plot(
        data.index,
        data[data.columns[0]],
        marker='o',
        linewidth=3,
        markersize=8
    )
    plt.title("test", pad=12)
    plt.show()
    return
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...