Seaborn热图显示不正确的x轴值

时间:2017-10-12 14:48:36

标签: python-2.7 pandas dataframe heatmap seaborn

我有一个Pandas数据框(" df")看起来像:

      Variable1    Var2         Parameters           Values
0        10.000     1.1           0.296342         0.170009   
1        10.015     1.1           0.297013         0.168656   
2        10.030     1.1           0.297659         0.167326   
3        10.045     1.1           0.298282         0.166018   
4        10.060     1.1           0.298883         0.164731   
5        10.075     1.1           0.299462         0.162223
...         ...     ...                ...              ...
4038     24.565     1.0           0.563698         0.222069

使用以下命令透过数据框

# Pivot dataframe
df = df.pivot('Var2', 'Variable1', 'Values')

我得到以下数据框:

Variable1    10.000    10.015    10.030    10.045    10.060    10.075  \
Var2                                                                  
1.0        0.219987  0.218130  0.216290  0.214465  0.212654  0.210856   
1.1        0.170009  0.168656  0.167326  0.166018  0.164731  0.163467   
1.2        0.133185  0.132202  0.131230  0.130269  0.129318  0.128378   
1.3        0.104472  0.103893  0.103312  0.102729  0.102147  0.101564   

Variable1    ...       24.865    24.880    24.895    24.910    24.925  
Var2         ...                
1.0          ...     0.212118  0.211691  0.211272  0.210860  0.210456     
1.1          ...     0.174883  0.174566  0.174257  0.173956  0.173662   
1.2          ...     0.147406  0.147154  0.146907  0.146664  0.146425   
1.3          ...     0.126780  0.126616  0.126456  0.126301  0.126150   

但是,当我尝试使用Seaborn heatmap使用以下命令对此进行成像:

# Pivot dataframe
df = df.pivot('Var2', 'Variable1', 'Values')

# Create heatmap
f, ax = plt.subplots(figsize=(20, 10))
sns.heatmap(df)
ax.xaxis.set_major_locator(ticker.MultipleLocator(20))
ax.xaxis.set_major_formatter(ticker.ScalarFormatter())
plt.show()

我得到的图表显示了Variable1(0,1,2,3,4,...)的索引,而我需要它来显示Variable1的(10,10.015) ,10.030,10.045等)。我举了一个例子来说明。enter image description here

我错过了什么?

1 个答案:

答案 0 :(得分:1)

复制样本数据

Variable1    Var2         Parameters           Values
    0        10.000     1.1           0.296342         0.170009   
    1        10.015     1.1           0.297013         0.168656   
    2        10.030     1.1           0.297659         0.167326   
    3        10.045     1.1           0.298282         0.166018   
    4        10.060     1.1           0.298883         0.164731   
    5        10.075     1.1           0.299462         0.162223
    4038     24.565     1.0           0.563698         0.222069

df = pd.read_clipboard()
df = df.pivot('Var2', 'Variable1', 'Values')

df的样子:

Variable1    10.000    10.015    10.030    10.045    10.060    10.075  \
Var2                                                                    
1.0             NaN       NaN       NaN       NaN       NaN       NaN   
1.1        0.170009  0.168656  0.167326  0.166018  0.164731  0.162223   

Variable1    24.565  
Var2                 
1.0        0.222069  
1.1             NaN 

只使用sns.heatmap(df)返回,

enter image description here

相关问题