在Seaborn中注释Swarmlot

2024-05-21 00:55:00 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,在最近从R过来之后,我仍然在学习Python。 我正在努力从DF列自动注释绘图。这在R中很容易做到

前几天,我在MPL散点图上得到了同样的帮助。 但我一直在绞尽脑汁想弄明白这一点。我将添加一些随机数据,并显示我所追求的那种东西的图片

import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt 
import matplotlib as mpl
import seaborn as sns
d = {'Player': ['Messi', 'Ronaldo','Mbappe','Kovacic', 'Werner','Salah'], '% of Squad pass': [3.2,3.2,4.4,9.9,7.4,4.8)
df = pd.DataFrame(data = d)

这就是我现在正在做的

fig, ax = plt.subplots(1,1, figsize=(4,4))
sns.swarmplot(data=df, x ='% of Squad Pass', ax = ax)

这让我明白了

我是否可以使用一个循环函数,用数据框中“Player”列的文本自动注释打印点

所以我会以这样的方式结束

enter image description here

谢谢,希望这将是我最后一个问题


Tags: of数据import绘图dfdatamatplotlibas
1条回答
网友
1楼 · 发布于 2024-05-21 00:55:00

这是我的建议。您需要导入随机库

import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt 
import matplotlib as mpl
import seaborn as sns
import random

d = {'Player': ['Messi', 'Ronaldo','Mbappe','Kovacic', 'Werner','Salah'], '% of Squad pass': [3.2,3.2,4.4,9.9,7.4,4.8]}
df = pd.DataFrame(data = d)

fig, ax = plt.subplots()
sns.swarmplot(data = df, x=df['% of Squad pass'], ax = ax)

for i, j in enumerate(df['% of Squad pass']):
    plt.annotate(df['Player'][i],
                xy=(df['% of Squad pass'][i],0),
                xytext=(df['% of Squad pass'][i], random.uniform(0.2,0.4)),
                arrowprops=dict(arrowstyle="->"))

相关问题 更多 >