计算 Crystal 皇宫 2020/21 赛季的客场和主场净胜球

Plotting Away and Home Goal Difference for Crystal Palace 2020/21

使用 javascript、vega 编辑器和此数据:https://github.com/StanWaldron/StanWaldron.github.io/blob/main/final.csv,我从 SportDataAPI 获得并使用 pandas 组织,我试图制作一个图表 [=25] =] 水晶宫在 2020/21 赛季的主客场进球数差异。正如你所看到的,我无法获得流畅的情节。

问题似乎是当主场比赛客场比赛时,数据中的 NaN 被置为 0,反之亦然。当试图通过像这样循环解决这个问题时:

for c in final['Home_GD']:
    if math.isnan(c) == True:
        c = 0.0

它似乎根本没有改变数据。如果这可行,我将能够简单地将它添加到以前的值并以这种方式绘制,对于每场比赛。

在 javascript 方面,我也使用了层,但一直在努力寻找完全分离数据然后使用两个不同数据源的方法,我可以在同一个图表上分层。

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",

  "title": {
      "text": "Home and Away Goal Difference For Crystal Palace 2020/21",
      "subtitle":["Exclusively in the Premier League"],
      "subtitleFontStyle":"italic",
      "subtitleFontSize":10,
      "anchor": "start",
      "color": "black"},

  "data": {
      "url":
      "https://raw.githubusercontent.com/StanWaldron/StanWaldron.github.io/main/final.csv"
   },

   "repeat": {"layer": ["Away_GD", "Home_GD"]},

   "height": 300,
   "width": 300,

   "spec": {
      "mark": {
          "type":"line",
          "strokeWidth":2},

      "encoding": {
          "x": {
              "field": "Date",
              "type": "temporal",
              "title":null,
              "axis":{
                 "grid": false
          }},

          "y": {
              "field": {"repeat": "layer"},
              "type": "quantitative",
              "title": null},

          "color": {
              "datum": {"repeat": "layer"},
              "scale": {"range": ["blue", "red"]},
              "legend": {
                "orient":"top-left",
                "fillColor":"white"}}
              }
          }
  }

我可能会通过在一个层中单独过滤每个值来做到这一点;这是一个例子 (open in editor):

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "data": {
    "url": "https://raw.githubusercontent.com/StanWaldron/StanWaldron.github.io/main/final.csv"
  },
  "transform": [{"fold": ["Home_GD", "Away_GD"], "as": ["key", "Goals"]}],
  "encoding": {
    "x": {"field": "Date", "type": "temporal"},
    "y": {"field": "Goals", "type": "quantitative"},
    "color": {"field": "key", "type": "nominal"}
  },
  "layer": [
    {
      "transform": [{"filter": "datum.key == 'Home_GD' && datum.Home_GD != ''"}],
      "mark": "line"
    },
    {
      "transform": [{"filter": "datum.key == 'Away_GD' && datum.Away_GD != ''"}],
      "mark": "line"
    }
  ]
}