如何构建热图?
How to build a heatmap?
我想构建一个热图,其中 Y 轴是树的数量,X 轴是叶子的数量,中心是 auc-roc
这是我的代码
df = pd.DataFrame(store,columns = ['n_trees' , 'n_leafs', 'auc-roc'])
df.set_index(['n_trees'], inplace=True)
ax = sns.heatmap(df)
我的数据框如下所示:
n_leafs auc-roc
n_trees
10 1 0.7
10 3 0.892529
10 5 0.107495
159 1 0.155
159 3 0.7581
... ... ...
1202 3 0.420
1202 5 0.422
1351 1 0.398
1351 3 0.273
1351 5 0.795
我得到了这张热图,这不是我想要的。如何删除X轴上的auc-roc并转移到中心?
您需要使用示例数据集将数据转换为长格式:
import pandas as pd
import seaborn as sns
import numpy as np
np.random.seed(111)
df = pd.DataFrame({'n_trees':np.repeat([10,159,1202,1305],3),
'n_leafs':[1,3,5]*4,
'auc-roc':np.random.uniform(0,1,12)})
Pivot 会变成这样:
df.pivot(index="n_trees",columns="n_leafs")
我们可以旋转和绘图:
sns.heatmap(df.pivot(index="n_trees",columns="n_leafs"))
通过reset_index
重置索引,然后使用pivot
转换table。
df = df.reset_index()
ax = sns.heatmap(df.pivot(*df), annot=True)
我想构建一个热图,其中 Y 轴是树的数量,X 轴是叶子的数量,中心是 auc-roc 这是我的代码
df = pd.DataFrame(store,columns = ['n_trees' , 'n_leafs', 'auc-roc'])
df.set_index(['n_trees'], inplace=True)
ax = sns.heatmap(df)
我的数据框如下所示:
n_leafs auc-roc
n_trees
10 1 0.7
10 3 0.892529
10 5 0.107495
159 1 0.155
159 3 0.7581
... ... ...
1202 3 0.420
1202 5 0.422
1351 1 0.398
1351 3 0.273
1351 5 0.795
我得到了这张热图,这不是我想要的。如何删除X轴上的auc-roc并转移到中心?
您需要使用示例数据集将数据转换为长格式:
import pandas as pd
import seaborn as sns
import numpy as np
np.random.seed(111)
df = pd.DataFrame({'n_trees':np.repeat([10,159,1202,1305],3),
'n_leafs':[1,3,5]*4,
'auc-roc':np.random.uniform(0,1,12)})
Pivot 会变成这样:
df.pivot(index="n_trees",columns="n_leafs")
我们可以旋转和绘图:
sns.heatmap(df.pivot(index="n_trees",columns="n_leafs"))
通过reset_index
重置索引,然后使用pivot
转换table。
df = df.reset_index()
ax = sns.heatmap(df.pivot(*df), annot=True)