python - Pandas:带有给定的一组 y 轴值类别图的标签

标签 python pandas

csv 具有以下值

Name       Grade
Jack       B
Jill       C

y 轴的标签是 CSV 中的 B 和 C。但我希望 y 轴包含所有等级 - A、B、C、D、F。这仅绘制 y 轴中的给定值(B、C),

ax = sns.catplot(x = "姓名", y = "成绩")

是否有任何可能的方法来绘制 y 轴上的所有等级。

最佳答案

当您调用sns.catplot()时没有 kind参数,它调用默认的 sns.stripplot ,仅当 y 时才有效。是数字。所以如果你真的想要这种情节,你应该将成绩编码为数字。您仍然可以通过将成绩字母指定为标签来在图中显示成绩字母:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()

# code grades as numbers (A: 1 etc.)
df = pd.DataFrame({'Name': ['Jack', 'Jill'], 
                   'Grade': [2, 3]})

# catplot (i.e. the default stripplot) works, as y is numerical
sns.catplot(x='Name', y='Grade', data=df)

# provide y tick positions and labels (translate numbers back to grade letters)
plt.yticks(range(1, 7), [chr(ord('A') + i) for i in range(6)])

grades plot

编辑:如果您想让 A 位于顶部,只需在末尾添加此行:

plt.gca().invert_yaxis()

关于python - Pandas:带有给定的一组 y 轴值类别图的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61176867/

相关文章:

python - 如何在 Theano 的 TensorVariable 上执行范围?

python - 正则表达式 python - 查找子字符串

python - 二维数组内的填充列表

python - 从字符串中选取多个值

python - 从字符串列表创建 Pandas 数据框

python - 这个排序算法的名称是什么?是冒泡排序吗?最简单的排序?

python - 如何将具有动态维度的张量的每个 2D 元素乘以静态 2D 掩码?

python - Pandas:删除列级别并合并标题

python - 来自 datetimeindex pandas 的时间序列 x 轴日期

Python Pandas - 在一个步骤中组合合并和过滤