创建两个分类变量的热图

时间:2019-03-23 09:57:54

标签: python pandas plot

我有以下三个变量的数据集:

  
      
  1. df ['Score']浮点虚拟对象(1或0)
  2.   
  3. df ['Province']对象列,其中每一行都是一个区域
  4.   
  5. df ['产品类型']指示行业的对象。
  6.   

我想创建一个联合图,其中在x轴上我具有不同的行业,在y轴上我具有不同的省份,并且作为我的联合图的颜色,我具有得分的相对频率。 这样的事情。 https://seaborn.pydata.org/examples/hexbin_marginals.html

目前,我只能执行以下操作

mean = df.groupby(['Province', 'Product type'])['score'].mean()

但是我不确定如何绘制它。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您要查找热图,则可以使用默认的 final def euclidean(v1: Array[Double], v2: Array[Double]): Double = { @annotation.tailrec def go(d: Double, i: Int): Double = { if(i < v1.size) { val toPow2 = v1(i) - v2(i) go(d + toPow2 * toPow2, i + 1) } else d } sqrt(go(0D, 0)) } 函数。但是,您需要先旋转表。

仅创建一个小示例:

heatmap

我的import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt score = [1, 1, 1, 0, 1, 0, 0, 0] provinces = ['Place1' ,'Place2' ,'Place2', 'Place3','Place1', 'Place2','Place3','Place1'] products = ['Product1' ,'Product3' ,'Product2', 'Product2','Product1', 'Product2','Product1','Product1'] df = pd.DataFrame({'Province': provinces, 'Product type': products, 'score': score }) 如下:

df

然后:

   'Province''Product type''score'
0   Place1    Product1      1
1   Place2    Product3      1
2   Place2    Product2      1
3   Place3    Product2      0
4   Place1    Product1      1
5   Place2    Product2      0
6   Place3    Product1      0
7   Place1    Product1      0

结果是: