участки перекрытия в матплотлибе - PullRequest
0 голосов
/ 30 января 2020

Я строю год-месяц periodIndex как x, а переменную как y. У меня есть следующая функция для создания графика:

def visualize_ilf(pandas_df):
    import seaborn as sns
    import matplotlib.pyplot as plt
    plt.rcParams["figure.figsize"] = (30,9)
    pandas_df['idx'] = pandas_df.index # is monthly
    ax1 = pandas_df.plot(x='idx', y='dep_score')
    ax2 = pandas_df.plot(x='idx', y='message_counts')
    ax3 = pandas_df.plot(x='idx', y='hasQuestionMark_INT')
    ax4 = pandas_df.plot(x='idx', y='sharing_ind')
    return plt.show()

Это прекрасно работает, но я получаю отдельные графики для каждого y. Как я могу перекрывать участки?

1 Ответ

0 голосов
/ 30 января 2020

Чтобы повторно использовать тот же график (или субплот), передайте топор в качестве параметра следующему. Кроме того, поскольку вы используете индекс как x, вам не нужно создавать для него специальный столбец, просто пропустите x в качестве параметра для графика, и pandas будет использовать индекс как x , Вы можете использовать plt.xlabel для правильной маркировки оси X.

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt

def visualize_ilf(pandas_df):
    plt.rcParams["figure.figsize"] = (30,9)
    ax1 = pandas_df.plot(y='dep_score')
    ax2 = pandas_df.plot(y='message_counts', ax=ax1)
    ax3 = pandas_df.plot(y='hasQuestionMark_INT', ax=ax1)
    ax4 = pandas_df.plot(y='sharing_ind', ax=ax1)
    plt.xlabel('My x label') # set a label for the x-axis
    plt.show()

N = 30
df = pd.DataFrame({'dep_score': np.random.normal(50, 10, N),
                   'message_counts': np.random.normal(60, 10, N),
                   'hasQuestionMark_INT': np.random.normal(70, 10, N),
                   'sharing_ind': np.random.normal(80, 10, N)},
                  index= range(N))
visualize_ilf(df)

example plot

В качестве альтернативы, в этом случае вы можете просто поместить несколько столбцов как параметр y:

ax1 = pandas_df.plot(y=['dep_score','message_counts','hasQuestionMark_INT','sharing_ind'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...