Я в замешательстве относительно того, почему мой график не отображается в vega?

#vega-lite

#vega-lite

Вопрос:

Мой график не отображается в vega, несмотря на отсутствие ошибок, которые я вижу? Смущен тем, почему это так. Я не совсем понимаю, что бы я сделал неправильно, чтобы график не отображался на странице. Это шаблон, который я скачал

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

 "title": {
  "text": "My new Covid Chart",
  "subtitle":"This is my new chart",
  "subtitleFontStyle":"italic",
  "subtitleFontSize":10,
  "anchor": "start",
  "color": "black"
},

 "data": {
  "url": "https://api.coronavirus.data.gov.uk/v2/data?areaType=overviewamp;metric=newCasesBySpecimenDateamp;format=csv",
  "format": {"type": "csv"}
},

 "transform":[
    
    {"filter": {
      "field": "areaName", 
      "oneOf": ["Bristol, City of", "Bolton", "Glasgow City"]}
      }


  ],


"height": 300,
"width": 310,
 
"mark": {"type": "line", "point": false},

"encoding": {

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

  "y": {
    "field": "newCasesByPublishDateRollingRate",
    "type": "quantitative",
    "title": null,
    "axis": {"grid": false}
  },

  "color": {
    "field": "areaName",
    "type": "nominal",
    "scale": {"scheme": "set1"},
    "title": "LEGEND TITLE",
    "legend": {
      "orient": "top-left", 
      "fillColor": "#FcFdFd"}
  }
 

}
}

Ответ №1:

Вы применили filter преобразование, которое не удовлетворяло критериям и делало данные пустыми. Также newCasesByPublishDateRollingRate поле для используемой оси y отсутствовало в ваших данных, вместо этого я попробовал поле newCasesBySpecimenDate , которое работало. Добавьте правильную конфигурацию ниже или обратитесь к редактору:

 {
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "title": {
    "text": "My new Covid Chart",
    "subtitle": "This is my new chart",
    "subtitleFontStyle": "italic",
    "subtitleFontSize": 10,
    "anchor": "start",
    "color": "black"
  },
  "data": {
    "url": "https://api.coronavirus.data.gov.uk/v2/data?areaType=overviewamp;metric=newCasesBySpecimenDateamp;format=csv",
    "format": {"type": "csv"}
  },
  "height": 300,
  "width": 310,
  "mark": {"type": "line", "point": false},
  "encoding": {
    "x": {
      "field": "date",
      "type": "temporal",
      "title": null,
      "axis": {"grid": false}
    },
    "y": {
      "field": "newCasesBySpecimenDate",
      "type": "quantitative",
      "title": null,
      "axis": {"grid": false}
    },
    "color": {
      "field": "areaName",
      "type": "nominal",
      "scale": {"scheme": "set1"},
      "title": "LEGEND TITLE",
      "legend": {"orient": "top-left", "fillColor": "#FcFdFd"}
    }
  }
}
 

Комментарии:

1. Спасибо! Тем не менее, я пытаюсь отфильтровать данные так, чтобы на графике отображались только три города. Например, Суонси, Абердин и (Глазго, город). Я бы подумал, что, применив преобразование фильтра, которое будет фильтровать данные, чтобы включить эти города.

2. хорошо, даже если в ваших данных не было городов, поэтому они становились пустыми с фильтром. В любом случае с фильтром график также не был бы нанесен, поскольку поле было неправильным.

3. Конечно, в данных есть города?? Вот почему я бы подумал, что фильтрация по areaname будет работать. Извините, что я новичок в этом, поэтому все еще пытаюсь все понять.