Сгруппированный бокс - PullRequest
       0

Сгруппированный бокс

1 голос
/ 06 февраля 2020

Это мой текущий код, я хотел бы сгруппировать данные в моем блокпосте, а не в одном блокпосте для всех указанных данных. Кроме того, как мне повернуть метки xtick?

plt.figure(figsize=(12,8), dpi=100)

plt.style.use('default')
plt.setp(ax.get_xticklabels(), rotation = 90)

compressor_room_temperature = df1['Compressor Room Temperature']
compressor_outlet_temperature = df1['Compressor Outlet Temperature']
compressor_inlet_temperature = df1['Compressor Inlet Temperature']
aircon_outlet_temperature = df1['Aircon Outlet Temperature']
compressor_room_temperature2 = df2['Compressor Room Temperature']
compressor_outlet_temperature2 = df2['Compressor Outlet Temperature']
compressor_inlet_temperature2 = df2['Compressor Inlet Temperature']
aircon_outlet_temperature2 = df2['Aircon Outlet Temperature']
compressor_room_temperature3 = df3['Compressor Room Temperature']
compressor_outlet_temperature3 = df3['Compressor Outlet Temperature']
compressor_inlet_temperature3 = df3['Compressor Inlet Temperature']
aircon_outlet_temperature3 = df3['Aircon Outlet Temperature']

bp = plt.boxplot([compressor_room_temperature, compressor_outlet_temperature, compressor_inlet_temperature, aircon_outlet_temperature, compressor_room_temperature2, compressor_outlet_temperature2, compressor_inlet_temperature2, aircon_outlet_temperature2, compressor_room_temperature3, compressor_outlet_temperature3, compressor_inlet_temperature3, aircon_outlet_temperature3], labels=['Compressor Room Temperature','Compressor Outlet Temperature','Compressor Inlet Temperature','Aircon Outlet Temperature','Compressor Room Temperature2','Compressor Outlet Temperature2','Compressor Inlet Temperature2','Aircon Outlet Temperature2','Compressor Room Temperature3','Compressor Outlet Temperature3','Compressor Inlet Temperature3','Aircon Outlet Temperature3'], patch_artist=True, medianprops={'linewidth': 2})
# plt.setp(ax.get_xticklabels(),rotation=45)
plt.title('Analyzing Temperature Data from Sensors placed across an Aircon system')
plt.ylabel('Temperature')


for box in bp['boxes']:
    box.set(color='#4286f4', linewidth=2)
    box.set(facecolor = '#e0e0e0' )

plt.show()

Мой текущий блокпост

enter image description here

По сути, я хотел бы свой блокпост быть что-то вроде ниже

enter image description here

1 Ответ

0 голосов
/ 06 февраля 2020

Простой способ - создать 3 оси без промежутков между ними и нанести каждый кадр данных на отдельные оси

label1 = 'dataset 1'
label2 = 'dataset 2'
label3 = 'dataset 3'
df1 = pd.DataFrame({'Compressor Room Temperature': np.random.normal(loc=10, size=(100,)),
                    'Compressor Outlet Temperature': np.random.normal(loc=10, size=(100,)),
                    'Compressor Inlet Temperature':np.random.normal(loc=10, size=(100,)),
                    'Aircon Outlet Temperature':np.random.normal(loc=10, size=(100,))
                   })
df2 = pd.DataFrame({'Compressor Room Temperature': np.random.normal(loc=5, size=(100,)),
                    'Compressor Outlet Temperature': np.random.normal(loc=5, size=(100,)),
                    'Compressor Inlet Temperature':np.random.normal(loc=5, size=(100,)),
                    'Aircon Outlet Temperature':np.random.normal(loc=5, size=(100,))
                   })
df3 = pd.DataFrame({'Compressor Room Temperature': np.random.normal(loc=15, size=(100,)),
                    'Compressor Outlet Temperature': np.random.normal(loc=15, size=(100,)),
                    'Compressor Inlet Temperature':np.random.normal(loc=15, size=(100,)),
                    'Aircon Outlet Temperature':np.random.normal(loc=15, size=(100,))
                   })


fig, axs = plt.subplots(1,3, gridspec_kw=dict(wspace=0), sharey=True)

for ax,df,label in zip(axs,[df1,df2,df3],[label1, label2, label3]):
    ax.boxplot(df.T)
    ax.set_xticklabels(df.columns, rotation='90')
    ax.set_xlabel(label)

fig.tight_layout()

enter image description here

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