График графика с данными, показывающими соответствующие цвета - PullRequest
2 голосов
/ 02 апреля 2019
color = []
for key,value in ms.iterrows():
    if(value['Color']=='Blue'):
       color.append('b')
    elif(value['Color']=='Green'):
       color.append('g')
    elif(value['Color']=='Red'):
       color.append('r')
    elif(value['Color']=='Yellow'):
       color.append('y')
    elif(value['Color']=='Orange'):
       color.append('o')
    else:
       color.append('k')
ax =ms[['Height','Color']].plot(x='Color', kind='bar', title="Correlation", 
figsize=(15,10), color=color legend=True, fontsize=12)
ax.set_xlabel("Colors", fontsize=12)
ax.set_ylabel("Height", fontsize=12)

data

Graph

Мое намерение состоит в том, чтобы построить гистограмму, которая показывает Цвет против Высоты. Мне удалось это сделать. Тем не менее, я бы хотел, чтобы каждый из столбцов отображал соответствующий цвет. В соответствии с набором данных, я бы хотел, чтобы 1-й столбец отображался красным ... и так далее. Я попытался добавить цвет, но он по-прежнему показывает только 1 цвет.

Ответы [ 2 ]

2 голосов
/ 02 апреля 2019

Хитрость заключается в создании многоколоночного фрейма данных и использовании опции stacked=True.

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

df = pd.DataFrame({"Height" : [5,3,6,4],
                   "Color" : ["Blue", "Green", "Red", "Yellow"]})

color = []
for key,value in df.iterrows():
    if(value['Color']=='Blue'):
       color.append('b')
    elif(value['Color']=='Green'):
       color.append('g')
    elif(value['Color']=='Red'):
       color.append('r')
    elif(value['Color']=='Yellow'):
       color.append('y')
    elif(value['Color']=='Orange'):
       color.append('o')
    else:
       color.append('k')

df2 = pd.DataFrame(np.diag(df["Height"]), columns=df["Color"], index=df["Color"])
ax = df2.plot(kind='bar', title="Correlation", color=color, legend=True, 
              fontsize=12, stacked=True)
ax.set_xlabel("Colors", fontsize=12)
ax.set_ylabel("Height", fontsize=12)

plt.show()

enter image description here

0 голосов
/ 02 апреля 2019

Вам не нужно создавать условия if / else:

import pandas as pd
df = pd.DataFrame({"Height" : [5,3,6,4],
                   "Color" : ["Blue", "Green", "Red", "Yellow"]})

df.set_index('Color').Height.plot(kind='bar',color=df.Color)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...