Легенда Matplotlib и цветовые карты из фреймов данных panda - PullRequest
1 голос
/ 12 июля 2020

Я пытаюсь построить несколько графиков с помощью Python. В частности, я работаю с фреймами данных. Я хотел бы знать, как сделать следующие несколько вещей:

  1. Адаптировать легенду графиков, используя соответствующее имя столбца. Я где-то проверил что-то, связанное с dictioinary ... Однако я собираюсь работать с большим количеством столбцов, чем 4 (как в примере ниже).
  2. Адаптировать цветовые карты из matplotlib для разных столбцов. Например, , если имя столбцов - «AA» и «CC», используйте одну из цветовых карт, а если содержит «BB» или «DD», используйте другие цветовые карты.

Я заключил код ниже, который я использую в качестве теста.

import numpy as np
import pandas as pd
import pylab as plt

def Plots():
    labels_df1 = list(df1.columns.values)
    labels_df2 = list(df2.columns.values)
    labels_df3 = list(df3.columns.values)
    labels_df4 = list(df4.columns.values)

    fig, axs = plt.subplots(2, 2)

    axs[0, 0].plot(df1, df1, label=labels_df1)
    axs[0, 0].set_xlabel('X axis')
    axs[0, 0].set_ylabel('Y axis')
    axs[0, 0].grid(True, which='both')
    axs[0, 0].legend(loc='best', fontsize=8)

    axs[0, 1].plot(df1, df2, label=labels_df2)
    axs[0, 1].set_xlabel('X axis')
    axs[0, 1].set_ylabel('Y axis')
    axs[0, 1].grid(True, which='both')
    axs[0, 1].legend(loc='best', fontsize=8)

    axs[1, 0].plot(df1, df3, label=labels_df3)
    axs[1, 0].set_xlabel('X axis')
    axs[1, 0].set_ylabel('Y axis')
    axs[1, 0].grid(True, which='both')
    axs[1, 0].legend(loc='best', fontsize=8)

    axs[1, 1].plot(df1,  df4, label=labels_df4)
    axs[1, 1].set_xlabel('X axis')
    axs[1, 1].set_ylabel('Y axis')
    axs[1, 1].grid(True, which='both')
    axs[1, 1].legend(loc='best', fontsize=8)

    plt.show()


df1 = pd.DataFrame(np.random.randn(5, 4), columns=['AA','BB','CC','DD'])
df2 = pd.DataFrame(np.random.randn(5, 4), columns=['AA','BB','CC','DD'])
df3 = pd.DataFrame(np.random.randn(5, 4), columns=['AA','BB','CC','DD'])
df4 = pd.DataFrame(np.random.randn(5, 4), columns=['AA','BB','CC','DD'])

Plots()

введите описание изображения здесь Заранее спасибо !!!

...