Достаточно полная коллекция ответов на linuxtopia sed FAQ . Также подчеркивается, что некоторые ответы, предоставленные людьми, не будут работать с версией sed, отличной от GNU, например
sed '0,/RE/s//to_that/' file
в версии, отличной от GNU, должно быть
sed -e '1s/RE/to_that/;t' -e '1,/RE/s//to_that/'
Однако эта версия не будет работать с gnu sed.
Вот версия, которая работает с обоими:
-e '/RE/{s//to_that/;:a' -e '$!N;$!ba' -e '}'
ex:
sed -e '/Apple/{s//Banana/;:a' -e '$!N;$!ba' -e '}' filename
Ваше именование переменных немного необычно. ax
обычно используется для объекта Axp matplotlib. Здесь у вас есть датафрейм.
В любом случае, вы должны создать фигуру с двумя осями. plt.subplots
это простой способ сделать это. Он вернет фигуру и массив со всеми осями, которые вы создали. Вы даже можете установить ось равной между двумя с помощью sharex
и sharey
. Используйте объекты осей в вызове построения для каждого кадра данных:
df1= concatenated_data_cleaned.groupby(['Cat1', 'Cat2']).median()[['Measure']].unstack()
df2= concatenated_data_cleaned.groupby(['Cat2', 'Cat1']).median()[['Measure']].unstack()
fig, axes = plt.subplots(nrows=2, sharex=True, sharey=True)
df1.plot.bar(rot=0, ax=axes[0])
df2.plot.bar(rot=0, ax=axes[1])
axes[0].set_title('Title 0')
axes[1].set_title('Title 1')
plt.show()