dataset.source with a header row, and each bar series picks up the next column on its own, one series per year.dataset.source an array of objects and list the keys in dimensions, which also sets the order the series read them in.seriesLayoutBy to row to read one series per product in the top chart, while the bottom chart reads one series per year.dataset: the first takes the first column by default and the others pick a year with encode.value.encode, products on the y axis and amounts on the x axis, and color each bar by its score with visualMap.dataset, and the pie switches to the year under the pointer through updateAxisPointer.transform of type sort as a second dataset and point the series at it with datasetIndex, so the bars run highest first.filter transforms, and lay the pies out side by side or stacked with media queries.dataset, each with its own encode pairing of income, life expectancy, population and country.