Как построить два кадра данных в одной и той же области и различить их темными и светлыми цветами? - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть два кадра данных, скажем, первый соответствует действующим электростанциям, а второй - трубопроводным электростанциям. Я хочу построить оба графика в одной области. Они должны отличаться темными и светлыми цветами, как показано на графиках ниже. Я попытался вставить столбец в каждый фрейм данных и установить его в качестве индекса (кроме страны и топлива). Я не мог ни установить новые столбцы в качестве индекса, ни построить кадры данных на одном графике. Я действительно ценю некоторую идею, чтобы выполнить это.

df1
              2010  2020  2030  2040  2050  
Country  Fuel
A        Gas   100   110   120   130   140
         Coal  100   110   120   130   140 
df2
              2010  2020  2030  2040  2050  
Country  Fuel
A        Gas   100   110   120   130   140
         Coal  100   110   120   130   140 

enter image description here

enter image description here

1 Ответ

0 голосов
/ 04 ноября 2018

Я считаю, что иерархические индексы мешают определенным задачам (например, этой), и лучше выполнять все манипуляции на плоском фрейме данных. В следующих шагах я использую reset_index, чтобы превратить уровни индекса в обычные столбцы, а затем set_index, чтобы вернуть их обратно при подготовке к этапу построения графика.

# reset the indexes, and add a new column to both dataframes
df1.reset_index(inplace=True)
df1['Plant Type'] = 'Operational'

df2.reset_index(inplace=True)
df2['Plant Type'] = 'Pipeline'

# concatenate the two dataframes
df_combined = pd.concat([df1, df2])

# set the index back to how it was, but also include the new column, and then plot
df_combined.set_index(['Plant Type', 'Country', 'Fuel']).plot.area()
...