【问题标题】:Can't get scatter plot on shots data in matplotlib无法在 matplotlib 中获取镜头数据的散点图
【发布时间】:2021-05-05 08:02:45
【问题描述】:

相信,你做得很好!!我正在尝试绘制昨天利物浦对阵西汉姆联的所有射门(我已经抓取并清理了数据)。我正在使用 matplotlib 绘制散点图,显示利物浦球员的所有尝试。我没有收到任何错误,但看不到结果,即未绘制散点图。以下是我尝试过的代码:

    import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
from mplsoccer.pitch import Pitch

df_new = pd.read_csv('xyz.csv')

df_new.head(5)

data =  df_new.loc[:, ~df_new.columns.str.contains('^Unnamed')]

data.head(5)

#set general use colors
text_color = 'w'

fig, ax =plt.subplots(figsize=(13,8.5))
fig.set_facecolor('#22312b')
ax.patch.set_facecolor('#22312b')

pitch = Pitch(pitch_type='statsbomb', orientation='vertical',
             pitch_color='#22312b', line_color='#c7d5cc', figsize=(16,11),
             constrained_layout=True, tight_layout=False, view='half')
pitch.draw(ax=ax)

plt.scatter(data['x'],data['y'])

我还附上了包含所有列的数据框的屏幕截图。我的 'x' 和 'y' 已经是浮动的,而不是字符串。谁能帮我得到散点图?提前致谢。

【问题讨论】:

  • 尝试将plt.show() 放在脚本末尾
  • 我试过但没用。谢谢你的回答
  • 你的 IDE 用的是什么?
  • jupyter 笔记本
  • 试试把%matplotlib inline

标签: python dataframe matplotlib machine-learning jupyter-notebook


【解决方案1】:

如果你试试这个会怎样:

from mplsoccer.pitch import Pitch
import matplotlib.pyplot as plt
plt.style.use('ggplot')
import pandas as pd

data = pd.read_csv("Book1.csv")
pitch = Pitch(pitch_type='statsbomb', orientation='vertical',
             pitch_color='#22312b', line_color='#c7d5cc', figsize=(16,11),
             constrained_layout=True, tight_layout=False, view='half')
fig, ax = pitch.draw()
sc = pitch.scatter(100*data["x"], 100*data["y"],
                   s=200, label='scatter', ax=ax)

【讨论】:

  • 感谢您的尝试,但这不起作用,因为我们需要使用 pyplot 来绘制散点图。 pitch 函数是绘制音高,pyplot 是绘制散点图。我尝试了您的解决方案,但不幸的是,这不起作用。
  • 在我的 jupyter notebook 版本中工作,这就是 mplsoccer 展示的方式......
  • 是的,这很好,但在我的情况下,它无法从数据框中获取数据点,并且 matplotlib 无法绘制绘图。这就是我面临的问题。获取海关数据点是有效的,你的答案是正确的。
  • 刚刚注意到一些事情。尝试将 x 和 y 值乘以 100...
  • 谢谢,我搞定了!!你是对的。我遇到了笔记本版本以及坐标值的问题。现在我理解了这些问题并调试了它们!感谢您的耐心和帮助我。
猜你喜欢
  • 2015-04-19
  • 1970-01-01
  • 2017-01-31
  • 1970-01-01
  • 2016-01-19
  • 1970-01-01
  • 2020-07-22
  • 2015-05-09
  • 1970-01-01
相关资源
最近更新 更多