One point per difficulty adjustment (every 2016 blocks), going back to January 2009. Source: our own node, using each header's difficulty and how long the network actually took to mine the period.
Hashrate is the computing power the network spends on mining. Nobody can measure it directly; it's inferred from how hard blocks were to find and how fast they were found. The axis is logarithmic because the number has grown by many orders of magnitude since 2009.
At each adjustment we read the difficulty and the period's block timestamps from our node and estimate hashrate with the standard difficulty-to-block-time relationship. No external API is involved in this series.
It's an average over each 2016-block period, not a live reading, so it smooths out short spikes and drops. Block timestamps are set by miners and have some slack, which adds noise over short spans.
For the countdown to the next adjustment, see the Bitcoin difficulty adjustment page.
Mining, fees and the rest of the network data live on the NodeWitness Network page.