我正在使用内置的 Seaborn 数据集钻石建立一个基于“切割”和“颜色”的 FacetGrid。然而,我首先删除颜色“D”和“E”以及剪切“Fair”,希望得到 5x5 网格。
我的代码是:
diamonds = sns.load_dataset("diamonds")
diamonds = diamonds[(~diamonds.color.isin(["D","E"])) & (diamonds.cut!="Fair")]
p2 = sns.FacetGrid(diamonds,row="cut",col="color")
p2 = p2.map(plt.scatter,"price","carat")
当我在 Jupyter 笔记本中运行此命令时,网格上仍然有两列“D”和“E”以及一行“Fair”,但与这两列和一行关联的所有方面都是空的。看图片 https://i.stack.imgur.com/zbrzw.jpg
我的问题是,如何删除这些空的面?我不明白 FacetGrid 如何知道这些级别仍然存在,因为我在调用 FacetGrid() 方法之前删除了它们。
Thanks!
你最终得到空面的原因是因为“颜色”和“切工”是分类系列。要完全删除这些类别,您可以对现有数据进行子集化,然后使用以下命令覆盖这些分类列.cat.remove_unused_categories()
删除这些值的任何痕迹。
import seaborn as sns
import matplotlib.pyplot as plt
diamonds = sns.load_dataset("diamonds")
diamonds = diamonds[(~diamonds.color.isin(["D","E"])) & (diamonds.cut!="Fair")]
diamonds["color"] = diamonds["color"].cat.remove_unused_categories()
diamonds["cut"] = diamonds["cut"].cat.remove_unused_categories()
p2 = sns.FacetGrid(diamonds, row="cut", col="color")
p2.map_dataframe(plt.scatter, "price", "carat")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)