WillKoehrsen 03fe027b3b Done with notebook 6 years ago
..
.pytest_cache c740363f3d Functions developed 6 years ago
data 66defbbd2b Delete 2019-01-26_stats 6 years ago
images 4788b8867d Working on notebook 6 years ago
Development.ipynb f8c94cd4c4 Working on analysis 6 years ago
Fitting.ipynb f98236d6fa Ran fitting notebook 6 years ago
Medium Stats Analysis.ipynb 8ecbe4bc5c notebook complete 6 years ago
Time Series Analysis.ipynb e0524aee9e Time series 6 years ago
Work In Progress.ipynb a4536ebda7 Done with notebook for article publication 6 years ago
bargraphs.py 8b1709c9c0 Working on article plotting 6 years ago
data-science-writing-2018.ipynb 03fe027b3b Done with notebook 6 years ago
readme.md 3a054a7394 Update readme.md 6 years ago
retrieval.py 8b1709c9c0 Working on article plotting 6 years ago
view_extraction.py 488ba20424 Added graph extraction 6 years ago
visuals.py 5baefab74f Better documentation 6 years ago

readme.md

Tools for analyzing Medium article statistics

The Medium stats Python toolkit is a suite of tools for retrieving, analyzing, predicting, and visualizing your Medium article stats. You can also run on my Medium statistics which are located in data/

  • Note: running on Mac may first require setting export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES from the command line to enable parallel processing

  • For complete usage refer to Medium Stats Analysis

  • Data retrieval code lives in retrieval.py

  • Visualization and analysis code is in visuals.py

  • See also the Medium article "Medium Analysis in Python"

  • Contributions are welcome and appreciated

  • For help contact wjk68@case.edu or twitter.com/@koehrsen_will

Basic usage

Use your own Medium statistics

  1. Go to the stats page https://medium.com/me/stats
  2. Scroll all the way down to the bottom so all the articles are loaded
  3. Right click, and hit 'save as'
  4. Save the file as stats.html in the data/ directory. You can also save the responses to do a similar analysis.

If you don't do this, you can still go to the next step and use the provided data!

Retrieving Statistics

  • Open up a Jupyter Notebook or Python terminal in the medium/ directory and run
from retrieval import get_data
df = get_data(fname='stats.html')

Analysis and Visualization

  • Interactive plots are not rendered on GitHub. To view the plots with their full capability, use NBviewer (Medium Stats Analysis on NBviewer)
  • All plots can be opened in the plotly online editor to finish up for publication

  • Histogram: make_hist(df, x, category=None)

  • Cumulative plot: make_cum_plot(df, y, category=None, ranges=False)

  • Scatter plots: make_scatter_plot(df, x, y, fits=None, xlog=False, ylog=False, category=None, scale=None, sizeref=2, annotations=None, ranges=False, title_override=None)

  • Scatter plot with three variables: pass in category or scale to make_scatter_plot

  • Univariate Linear Regression: make_linear_regression(df, x, y, intercept_0)

  • Univariate polynomial fitting: make_poly_fits(df, x, y, degree=6)

  • Multivariate Linear Regression: pass in list of x to make_linear_regression

  • Future extrapolation: make_extrapolation(df, y, years, degree=4)

  • More methods will be coming soon!

  • Submit pull requests with your own code, or open issues for suggestions!