计算 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"
}
]
}
使用 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"
}
]
}