viewof ÝearlyDuration = {
const y = vl.y().fieldO("timestamp").timeUnit("year").scale({ zero: false }).title('Year');
const x = vl.x().fieldO("timestamp").timeUnit("month").scale({ zero: false }).title('Month');
const color = vl.color().average("duration").scale({scheme: "redyellowgreen", reverse: true});
const size = vl.size().count("duration");
const AverageDuration = vl.markRect({tooltip: {"content": "data"}, clip: true}).width(400).height(300)
.encode(x, y, color)
.encode(vl.tooltip().average('duration'));
const CountsRecords = vl.markCircle({tooltip: {"content": "data"}, clip: true}).width(400).height(300)
.encode(x, y, color,size)
.encode(vl.tooltip().count("duration"));
return vl.vconcat(vl.hconcat(AverageDuration.title("Average Allergy Symptom Duration"), CountsRecords.title("Allergy Symptom Records")))
.data(data)
.config({ concat: { spacing: 50 } })
.render();
}