#python #pandas #dataframe #matplotlib #seaborn
id Temperature Humidity Light CO2 HumidityRatio Occupancy
date
2015-02-04 17:51:00 1 2.518315 0.278509 1.573666 0.364926 1.091690 1.0
2015-02-04 17:51:59 2 2.488814 0.277696 1.591637 0.341860 1.080489 1.0
2015-02-04 17:53:00 3 2.488814 0.273628 1.573666 0.340269 1.075822 1.0
2015-02-04 17:54:00 4 2.488814 0.265492 1.573666 0.323567 1.066489 1.0
2015-02-04 17:55:00 5 2.439646 0.265492 1.573666
plt.figure(figsize=(7,6))
corr = df.drop('id', axis=1).corr()
sns.heatmap(corr, cmap=sns.color_palette("RdBu_r", 1000), vmin=-1, center=0, annot=True)
Как видно на графике верх и низ срезаны. Как полностью втиснуть квадратик в график?
https://drive.google.com/file/d/1YzGDML_wBZSJTGip3yZ1uk6HTTCSg_nD/view?usp=sharing
Как получены данные:
import pandas as pd
df = pd.read_csv('datatraining.txt', sep=r',', engine='python', header=None, names
= ['id', 'date','Temperature','Humidity','Light','CO2','HumidityRatio','Occupancy'])
df = df.drop([0])
df.index = pd.to_datetime(df.date)
df.drop('date', axis=1, inplace=True)
df = df.apply(pd.to_numeric)
def scale(df):
return (df - df.mean()) / df.std()
df.Temperature = scale(df.Temperature)
df.Humidity = scale(df.Humidity)
df.Light = scale(df.Light)
df.CO2 = scale(df.CO2)
df.HumidityRatio = scale(df.HumidityRatio)
Ответы
Ответ 1
Вместо sns.heatmap(corr, cmap=sns.color_palette("RdBu_r", 1000), vmin=-1, center=0, annot=True) Сделайте так: ax = sns.heatmap(corr, cmap=sns.color_palette("RdBu_r", 1000), vmin=-1, center=0, annot=True) i, k = ax.get_ylim() ax.set_ylim(i+0.5, k-0.5) #устанавливаем границы вручнуюОтвет 2
Используйте специально предназначенную для этого функцию plt.tight_layout() в конце: sns.heatmap(corr, cmap=sns.color_palette("RdBu_r", 1000), vmin=-1, center=0, annot=True) plt.tight_layout()
Комментариев нет:
Отправить комментарий