我正在尝试动态标记Seaborn catplot 中的所有数据点。此处可重现的代码:
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
data = [['Vestibulum', 1, 'Augusti', 189],
['Quam', 1, 'Augusti', 207],
['Dolor', 1, 'Augusti', 220],
['Posuere', 1, 'Augusti', 231],
['Vitae', 2, 'Legionis', 239],
['Amet', 2, 'Legionis', 289],
['Ullamcorper', 2, 'Legionis', 302],
['Fusce', 3, 'Tribunus', 289],
['', 4, 'Praefectus', ],
['Suscipit', 5, 'Tribuni', 376],
['', 6, 'Angusticlavi', ]]
df = pd.DataFrame(data, columns = ['name', 'order', 'role', 'aureus'])
df
我在这里找到了基本的猫图,没有标签:
sns.set(style='whitegrid')
sns.catplot(x="role",
y="aureus",
data=df,
jitter='0',
s=15)
plt.gcf().set_size_inches(25, 12)
plt.ylim(0, 500)
这是虚拟数据,值会发生变化(x 轴类别、y 轴等),尽管数据点的绝对数量将保持不变。我想根据数据动态地执行此操作,而不是在绘制单个注释时过于具体。我希望根据数据框的“名称”列中的值,在右侧为每个数据点添加数据标签。
在这里欣赏任何指针!