Gist a47a4a5c5f7039022881d0b2dc84a1d6
The visualization tracks a month of daily running activity, plotting each day’s distance, time, and heart rate as a dual-axis scatterplot with a connected line. It shows how distance and time peak on high-mileage days while resting heart rate dips, with zero-distance rest days marked as gaps. Built using d3.scaleLinear for axes, d3.line for the path, and d3.axisBottom/axisLeft for gridlines, the chart reads from the CSV data via d3.csv. Points are rendered with d3.point circles, and the y-axis encodes time, while the x-axis uses a time scale for dates.