1

所以我最近从 R 回来后仍然在掌握 Python。我正在努力自动注释 DF Column 中的图。这在 R 中很容易完成。

前几天我在 MPL Scatter plots 上得到了同样的帮助。但我一直在努力解决这个问题。我将添加一些随机数据,并展示我所追求的那种东西的图片。

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)

这让我明白了,

有没有我可以使用的循环函数,它会自动用数据框中“播放器”列中的文本注释绘图点?

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

在此处输入图像描述

谢谢,希望这将是我关于此事的最后一个问题!

4

1 回答 1

0

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

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="->"))
于 2021-02-03T13:32:33.250 回答