python - sns 中的 catplot 显示实际上不存在的交叉点
问题描述
我正在尝试在 sns 中创建一个 catplot,示例数据位于 https://drive.google.com/file/d/1Lq3KH6Mj1WVPNA4ByJwtFQd4ovLd4lgi/view?usp=sharing下面
当我使用下面的来生成情节时
fig=sns.catplot(data=df, x = 'SubCategory', hue='filedate',col='Category',kind='count')
我得到下面的情节。
为什么像“G”这样的子类别只在类别 1 和类别 2 中,而它只在类别 3 中。另外,我怎样才能把那些在各自类别中的子类别而不是所有子类别都显示在所有类别中
解决方案
不要认为可以删除 count = 0 的类别,您可以尝试定义一个自定义函数并调用 Catplot 使用的 FacetGrid :
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt
df = pd.read_csv("./Downloads/zrr2weeks.csv")
def bplot(x,y,**kwargs):
sns.countplot(x,hue=y,**kwargs)
g = sns.FacetGrid(df,col='Category',sharex=False)
g.map(bplot,'SubCategory','filedate')
您可以在第 8 类中看到有两个 G,即“G”和“G”。不太确定这是否是有意的。如果不:
df.SubCategory = df.SubCategory.str.replace(" ","")
g = sns.FacetGrid(df,col='Category',sharex=False)
g.map(bplot,'SubCategory','filedate')
推荐阅读
- javascript - Vue-使用ref设置文件时未触发文件输入元素的@change-拖放文件上传
- orocrm - ORO API 非资源结构
- javascript - 序列化 OpenPGP 公钥
- python - 如何将 Iostr 转换为字符串?
- kibana - 将日志参数插入 Kibana 警报消息
- sql - 动态 SQL 列选择
- ios - 直接在 IOS 设备中运行 Flutter 应用程序
- django - 在邮递员中获得预期的卷曲输出..但在使用 django view.py 时不一样
- java - Spring kafka:如何在生产者工厂中配置序列化器?
- php - 如何将自定义元过滤器添加到 WooCommerce Analytics?