{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": true }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction: Stats for Medium Articles\n", "\n", "In this notebook, we will explore my medium article statistics. We'll work with the raw HTML of the stats page. To apply to your own medium data, go to the stats page, make sure to scroll all the way down to the bottom so all the articles are loaded, right click, and hit 'save as'. Save the file as `stats.html` in the `data/` directory. You can also save the responses to do a similar analysis.\n", "\n", "![](images/stats-saving-medium.gif)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll use the information on this page. \n", "\n", "![](images/stat_graph.png)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:52.451291Z", "start_time": "2018-12-30T19:11:50.859513Z" } }, "outputs": [ { "data": { "text/html": [ "" ], "text/vnd.plotly.v1+html": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Data science imports\n", "import pandas as pd\n", "import numpy as np\n", "\n", "# Options for pandas\n", "pd.options.display.max_columns = 25\n", "\n", "# Display all cell outputs\n", "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = 'all'\n", "\n", "# Interactive plotting\n", "import plotly.plotly as py\n", "import plotly.graph_objs as go\n", "import cufflinks\n", "cufflinks.go_offline()\n", "\n", "# Parsing articles\n", "from bs4 import BeautifulSoup\n", "\n", "# Utilities\n", "from collections import Counter, defaultdict\n", "from itertools import chain\n", "import re\n", "\n", "# Getting webpages\n", "import requests" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make sure to scroll all the way down on the stats page and then save." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:52.709340Z", "start_time": "2018-12-30T19:11:52.454083Z" } }, "outputs": [ { "data": { "text/plain": [ "'\\n\\nYour stories stats – Mediumif (window.top !== window.self) window.top.location = window.self.locat'" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "soup = BeautifulSoup(open('data/stats.html', 'r'), 'html.parser')\n", "soup.text[:100]" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:52.883923Z", "start_time": "2018-12-30T19:11:52.711365Z" } }, "outputs": [ { "data": { "text/plain": [ "'\\n\\nYour responses stats – Mediumif (window.top !== window.self) window.top.location = window.self.loc'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res_soup = BeautifulSoup(open('data/stats-responses.html', 'r'), 'html.parser')\n", "res_soup.text[:100]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:52.952793Z", "start_time": "2018-12-30T19:11:52.886817Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 121 articles.\n" ] } ], "source": [ "table_rows = soup.find_all(attrs={'class':\"sortableTable-row js-statsTableRow\"})\n", "print(f'Found {len(table_rows)} articles.')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:53.017559Z", "start_time": "2018-12-30T19:11:52.954840Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 104 responses.\n" ] } ], "source": [ "res_table_rows = res_soup.find_all(attrs={'class':\"sortableTable-row js-statsTableRow\"})\n", "print(f'Found {len(res_table_rows)} responses.')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Metadata for Article\n", "\n", "We'll scrape the article listing in this table to retrieve the metadata. Later, we'll go to the article itself for additional data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![](images/table.png)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:53.033536Z", "start_time": "2018-12-30T19:11:53.020009Z" } }, "outputs": [ { "data": { "text/plain": [ "1545935446878Books of 2018View storyDetails923923
views
178178
reads
19.28494041170097619%
ratio
6868
fans
" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "entry = table_rows[1]\n", "entry" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Published and Begun Times" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:53.040509Z", "start_time": "2018-12-30T19:11:53.035886Z" } }, "outputs": [ { "data": { "text/plain": [ "'1545773321450'" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "entry.get('data-timestamp')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:53.087058Z", "start_time": "2018-12-30T19:11:53.043554Z" } }, "outputs": [ { "data": { "text/plain": [ "Timestamp('2018-12-25 16:28:41.450000-0500', tz='America/New_York')" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def convert_timestamp(ts: int, tz: str):\n", " return pd.to_datetime(ts, origin='unix', unit='ms').tz_localize('UTC').tz_convert(tz)\n", "\n", "convert_timestamp(entry.get('data-timestamp'), 'America/New_York')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is the time at which the article was started. \n", "\n", "The time at which the article was published is also in the data." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:53.099676Z", "start_time": "2018-12-30T19:11:53.089695Z" } }, "outputs": [ { "data": { "text/plain": [ "'1545935446878'" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "Timestamp('2018-12-27 12:30:46.878000-0600', tz='America/Chicago')" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "published_time = entry.find_all(attrs={'class': 'sortableTable-value'})[0].text\n", "\n", "published_time\n", "\n", "convert_timestamp(published_time, 'America/Chicago')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reading Time" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:53.107291Z", "start_time": "2018-12-30T19:11:53.101817Z" } }, "outputs": [ { "data": { "text/plain": [ "27" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "read_time = int(entry.find_all(attrs={'class':'readingTime'})[0].get('title').split(' ')[0])\n", "read_time" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2018-12-28T03:24:19.365253Z", "start_time": "2018-12-28T03:24:19.324467Z" } }, "source": [ "We can get more metadata by searcing the table about the entry." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:53.392125Z", "start_time": "2018-12-30T19:11:53.387699Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1545935446878\n", "923\n", "178\n", "19.284940411700976\n", "68\n" ] } ], "source": [ "for i in entry.find_all(attrs={'class':'sortableTable-value'}):\n", " print(i)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first piece of information is the published timestamp but the labels for the others are hidden." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:53.684246Z", "start_time": "2018-12-30T19:11:53.680373Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "
views
\n", "
reads
\n", "
ratio
\n", "
fans
\n" ] } ], "source": [ "for i in entry.find_all(attrs={'class':'u-sm-show'}):\n", " print(i) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Views, Reads, Reading Ratio, Number of Fans\n", "\n", "Let's quickly iterate through these entries to get the information. This assumes the order of the information is the same (which might need to be updated if Medium updates the stats page)." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:54.000023Z", "start_time": "2018-12-30T19:11:53.990441Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'fans': 68,\n", " 'published_timestamp': Timestamp('2018-12-27 12:30:46.878000-0600', tz='America/Chicago'),\n", " 'ratio': 19.284940411700976,\n", " 'read_time': 27,\n", " 'reads': 178,\n", " 'started_timestamp': Timestamp('2018-12-25 15:28:41.450000-0600', tz='America/Chicago'),\n", " 'views': 923}\n" ] } ], "source": [ "entry_dict = {}\n", "for value, key in zip(entry.find_all(attrs={'class':'sortableTable-value'}),\n", " ['published_timestamp', 'views', 'reads', 'ratio', 'fans']):\n", " entry_dict[key] = float(value.text) if key == 'ratio' else int(value.text)\n", " \n", "entry_dict['published_timestamp'] = convert_timestamp(entry_dict['published_timestamp'], 'America/Chicago')\n", "entry_dict['started_timestamp'] = convert_timestamp(entry.get('data-timestamp'), 'America/Chicago')\n", "entry_dict['read_time'] = int(entry.find_all(attrs={'class':'readingTime'})[0].get('title').split(' ')[0])\n", "\n", "from pprint import pprint\n", "pprint(entry_dict)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Publication\n", "\n", "To figure out the publication - if there is one - we use the following code." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:54.444806Z", "start_time": "2018-12-30T19:11:54.442683Z" } }, "outputs": [], "source": [ "entry=table_rows[0]" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:54.455938Z", "start_time": "2018-12-30T19:11:54.448600Z" } }, "outputs": [ { "data": { "text/plain": [ "'Towards Data Science'" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "publication = entry.find_all(attrs={'class': 'sortableTable-text'})\n", "if 'In' in publication[0].text:\n", " publication = publication[0].text.split('In ')[1].split('View')[0]\n", "else:\n", " publication = 'None'\n", " \n", "publication" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This seems a little overcomplicated, but it gets the job done. If there is a better way, I'd enjoy hearing it! " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Getting Article Link" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2018-12-29T18:04:19.760550Z", "start_time": "2018-12-29T18:04:19.522769Z" } }, "source": [ "We'll want to store the article link so we can go to it and find more information." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:55.523287Z", "start_time": "2018-12-30T19:11:55.517410Z" } }, "outputs": [ { "data": { "text/plain": [ "'https://towardsdatascience.com/the-copernican-principle-and-how-to-use-statistics-to-figure-out-how-long-anything-will-last-9cceb7aba20a'" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "link = entry.find_all(text='View story', attrs={'class': 'sortableTable-link'})[0].get('href')\n", "link" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Retrieving Article\n", "\n", "To get the article itself, we use the amazing `requests` library." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:56.734988Z", "start_time": "2018-12-30T19:11:55.862076Z" } }, "outputs": [ { "data": { "text/plain": [ "requests.models.Response" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r = requests.get(link)\n", "type(r)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:56.744223Z", "start_time": "2018-12-30T19:11:56.737682Z" } }, "outputs": [ { "data": { "text/plain": [ "176165" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(r.content)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Article Data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can go to the article itself to extract more information, such as the number of words, the number of claps, and the tags." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Article Title and Number of Words" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:58.169164Z", "start_time": "2018-12-30T19:11:57.332800Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\"The Copernican Principle and How to Use Statistics to Figure Out How Long Anything Will Last\" has 1898 words with a read time of 27 minutes.\n" ] } ], "source": [ "# Retrieve the article and create a soup\n", "entry_content = requests.get(link).content\n", "entry_soup = BeautifulSoup(entry_content)\n", "\n", "title = entry_soup.h1.text\n", "\n", "# Main text entries\n", "entry_text = [p.text for p in entry_soup.find_all(['h1', 'h2', 'h3', 'p', 'blockquote'])]\n", "\n", "# Make sure to catch everything\n", "entry_text.extend(s.text for s in entry_soup.find_all(attrs={'class':'graf graf--li graf-after--li'}))\n", "entry_text.extend(s.text for s in entry_soup.find_all(attrs={'class': 'graf graf--li graf-after--p'}))\n", "entry_text.extend(s.text for s in entry_soup.find_all(attrs={'class': 'graf graf--li graf-after--blockquote'}))\n", "entry_text.extend(s.text for s in entry_soup.find_all(attrs={'class': 'graf graf--li graf-after--pullquote'}))\n", "\n", "entry_text = ' '.join(entry_text)\n", "\n", "# Word count\n", "word_count = len(re.findall(r\"[\\w']+|[.,!?;]\", entry_text))\n", "\n", "print(f'\"{title}\" has {word_count} words with a read time of {entry_dict[\"read_time\"]} minutes.')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Number of Claps" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:58.177334Z", "start_time": "2018-12-30T19:11:58.170487Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\"The Copernican Principle and How to Use Statistics to Figure Out How Long Anything Will Last\" has 123 claps from 68 fans.\n" ] } ], "source": [ "# Number of claps\n", "clap_pattern = re.compile('^[0-9]{1,} claps|^[0-9]{1,}.[0-9]{1,}K claps|^[0-9]{1,}K claps')\n", "claps = entry_soup.find_all(text = clap_pattern)\n", "\n", "if len(claps) > 0:\n", " if 'K' in claps[0]:\n", " clap_number = int(1e3 * float(claps[0].split('K')[0]))\n", " else:\n", " clap_number = int(claps[0].split(' ')[0])\n", "else:\n", " clap_number = 0\n", "\n", "print(f'\"{title}\" has {clap_number} claps from {entry_dict[\"fans\"]} fans.')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tags" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:58.191528Z", "start_time": "2018-12-30T19:11:58.178842Z" } }, "outputs": [ { "data": { "text/plain": [ "['Science', 'Towards Data Science', 'Education', 'Statistics', 'Universe']" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Post tags\n", "tags = entry_soup.find_all(attrs={'class': 'tags tags--postTags tags--borderless'})\n", "tags = [li.text for li in tags[0].find_all('li')]\n", "tags" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Number of Responses" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:58.307011Z", "start_time": "2018-12-30T19:11:58.293530Z" } }, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "responses = entry_soup.find_all(attrs={'class': 'button button--chromeless u-baseColor--buttonNormal u-marginRight12',\n", " 'data-action': 'scroll-to-responses'})\n", "num_responses = int(responses[0].text) if len(responses) > 0 else 0\n", "num_responses" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Convert to DataFrame" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we'll put all of the information in a dictionary, and then convert to a dataframe. This allows for ease of analysis and visualization." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:58.981387Z", "start_time": "2018-12-30T19:11:58.978119Z" } }, "outputs": [], "source": [ "# Store in dictionary with title as key\n", "entry_dict['title'] = title\n", "entry_dict['publication'] = publication\n", "entry_dict['text'] = entry_text\n", "entry_dict['word_count'] = word_count\n", "entry_dict['claps'] = clap_number\n", "entry_dict['tags'] = tags\n", "entry_dict['num_responses'] = num_responses" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:59.013678Z", "start_time": "2018-12-30T19:11:58.986259Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
clapsfansnum_responsespublicationpublished_timestampratioread_timereadsstarted_timestamptagstexttitleviewsword_count
0123682Towards Data Science2018-12-27 12:30:46.878000-06:0019.28494271782018-12-25 15:28:41.450000-06:00[Science, Towards Data Science, Education, Sta...The Copernican Principle and How to Use Statis...The Copernican Principle and How to Use Statis...9231898
\n", "
" ], "text/plain": [ " claps fans num_responses publication \\\n", "0 123 68 2 Towards Data Science \n", "\n", " published_timestamp ratio read_time reads \\\n", "0 2018-12-27 12:30:46.878000-06:00 19.28494 27 178 \n", "\n", " started_timestamp \\\n", "0 2018-12-25 15:28:41.450000-06:00 \n", "\n", " tags \\\n", "0 [Science, Towards Data Science, Education, Sta... \n", "\n", " text \\\n", "0 The Copernican Principle and How to Use Statis... \n", "\n", " title views word_count \n", "0 The Copernican Principle and How to Use Statis... 923 1898 " ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.DataFrame([entry_dict])\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:59.040913Z", "start_time": "2018-12-30T19:11:59.015739Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
clapsfansnum_responsespublicationpublished_timestampratioread_timereadsstarted_timestamptagstexttitleviewsword_countclaps_per_wordedit_days
0123682Towards Data Science2018-12-27 12:30:46.878000-06:0019.28494271782018-12-25 15:28:41.450000-06:00[Science, Towards Data Science, Education, Sta...The Copernican Principle and How to Use Statis...The Copernican Principle and How to Use Statis...92318980.0648051.876452
\n", "
" ], "text/plain": [ " claps fans num_responses publication \\\n", "0 123 68 2 Towards Data Science \n", "\n", " published_timestamp ratio read_time reads \\\n", "0 2018-12-27 12:30:46.878000-06:00 19.28494 27 178 \n", "\n", " started_timestamp \\\n", "0 2018-12-25 15:28:41.450000-06:00 \n", "\n", " tags \\\n", "0 [Science, Towards Data Science, Education, Sta... \n", "\n", " text \\\n", "0 The Copernican Principle and How to Use Statis... \n", "\n", " title views word_count \\\n", "0 The Copernican Principle and How to Use Statis... 923 1898 \n", "\n", " claps_per_word edit_days \n", "0 0.064805 1.876452 " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Add extra columns with more data\n", "df['claps_per_word'] = df['claps'] / df['word_count']\n", "df['edit_days'] = (df['published_timestamp'] - df['started_timestamp']).dt.total_seconds() / (60 * 60 * 24)\n", "\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tags to Columns\n", "\n", "Next we'll one-hot-encode the five most popular tags. Each tag now becomes one column, where the value is 1 if the story has a tag and 0 otherwise (this will be relevant when we have multiple articles with different tags)." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:59.382059Z", "start_time": "2018-12-30T19:11:59.352803Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
clapsfansnum_responsespublicationpublished_timestampratioread_timereadsstarted_timestamptagstexttitleviewsword_countclaps_per_wordedit_days<tag>Science<tag>Towards Data Science<tag>Education<tag>Statistics<tag>Universe
0123682Towards Data Science2018-12-27 12:30:46.878000-06:0019.28494271782018-12-25 15:28:41.450000-06:00[Science, Towards Data Science, Education, Sta...The Copernican Principle and How to Use Statis...The Copernican Principle and How to Use Statis...92318980.0648051.87645211111
\n", "
" ], "text/plain": [ " claps fans num_responses publication \\\n", "0 123 68 2 Towards Data Science \n", "\n", " published_timestamp ratio read_time reads \\\n", "0 2018-12-27 12:30:46.878000-06:00 19.28494 27 178 \n", "\n", " started_timestamp \\\n", "0 2018-12-25 15:28:41.450000-06:00 \n", "\n", " tags \\\n", "0 [Science, Towards Data Science, Education, Sta... \n", "\n", " text \\\n", "0 The Copernican Principle and How to Use Statis... \n", "\n", " title views word_count \\\n", "0 The Copernican Principle and How to Use Statis... 923 1898 \n", "\n", " claps_per_word edit_days Science Towards Data Science \\\n", "0 0.064805 1.876452 1 1 \n", "\n", " Education Statistics Universe \n", "0 1 1 1 " ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Add 5 most common tags with flag column if data has it\n", "n = 5\n", "all_tags = list(chain(*df['tags'].tolist()))\n", "tag_counts = Counter(all_tags)\n", "tags = tag_counts.most_common(n)\n", "\n", "for tag, count in tags:\n", " flag = [1 if tag in tags else 0 for tags in df['tags']]\n", " df.loc[:, f'{tag}'] = flag\n", " \n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Function to Process Single Entry\n", "\n", "We'll encapsulate all of the steps in a single function. This function is designed to be run in parallel, but we can also run it on a single entry." ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:11:59.706842Z", "start_time": "2018-12-30T19:11:59.687384Z" } }, "outputs": [], "source": [ "def process_entry(entry, parallel=True, tz='America/Chicago'):\n", " \"\"\"\n", " Extract data from one entry in table\n", "\n", " :param entry: BeautifulSoup tag\n", " :param parallel: Boolean for whether function is being run in parallel\n", " :param tz: string representing timezone for started and published time\n", "\n", " :return entry_dict: dictionary with data about entry\n", "\n", " \"\"\"\n", " # Convert to soup when running in parallel\n", " if parallel:\n", " entry = BeautifulSoup(entry, features='lxml').body.tr\n", "\n", " entry_dict = {}\n", " # Extract information\n", " for value, key in zip(entry.find_all(attrs={'class': 'sortableTable-value'}),\n", " ['published_date', 'views', 'reads', 'ratio', 'fans']):\n", " entry_dict[key] = float(\n", " value.text) if key == 'ratio' else int(value.text)\n", "\n", " entry_dict['read_time'] = int(entry.find_all(attrs={'class': 'readingTime'})[\n", " 0].get('title').split(' ')[0])\n", "\n", " # Unlisted vs published\n", " entry_dict['type'] = 'unlisted' if len(\n", " entry.find_all(text=' Unlisted')) > 0 else 'published'\n", "\n", " # Publication \n", " \n", " publication = entry.find_all(attrs={'class': 'sortableTable-text'})\n", " if 'In' in publication[0].text:\n", " entry_dict['publication'] = publication[0].text.split('In ')[1].split('View')[0]\n", " else:\n", " entry_dict['publication'] = 'None'\n", " \n", "\n", " # Convert datetimes\n", " entry_dict['published_date'] = convert_timestamp(\n", " entry_dict['published_date'], tz=tz)\n", " entry_dict['started_date'] = convert_timestamp(\n", " entry.get('data-timestamp'), tz=tz)\n", "\n", " # Get the link\n", " link = entry.find_all(text='View story',\n", " attrs={'class': 'sortableTable-link'})[0].get('href')\n", "\n", " # Retrieve the article and create a soup\n", " entry = requests.get(link).content\n", " entry_soup = BeautifulSoup(entry, features='lxml')\n", "\n", " # Get the title\n", " try:\n", " title = entry_soup.h1.text\n", " except:\n", " title = 'response'\n", "\n", " # Main text entries\n", " entry_text = [p.text for p in entry_soup.find_all(\n", " ['h1', 'h2', 'h3', 'p', 'blockquote'])]\n", "\n", " # Make sure to catch everything\n", " entry_text.extend(s.text for s in entry_soup.find_all(\n", " attrs={'class': 'graf graf--li graf-after--li'}))\n", " entry_text.extend(s.text for s in entry_soup.find_all(\n", " attrs={'class': 'graf graf--li graf-after--p'}))\n", " entry_text.extend(s.text for s in entry_soup.find_all(\n", " attrs={'class': 'graf graf--li graf-after--blockquote'}))\n", " entry_text.extend(s.text for s in entry_soup.find_all(\n", " attrs={'class': 'graf graf--li graf-after--pullquote'}))\n", "\n", " entry_text = ' '.join(entry_text)\n", "\n", " # Word count\n", " word_count = len(re.findall(r\"[\\w']+|[.,!?;]\", entry_text))\n", "\n", " # Number of claps\n", " clap_pattern = re.compile(\n", " '^[0-9]{1,} claps|^[0-9]{1,}.[0-9]{1,}K claps|^[0-9]{1,}K claps')\n", " claps = entry_soup.find_all(text=clap_pattern)\n", "\n", " if len(claps) > 0:\n", " if 'K' in claps[0]:\n", " clap_number = int(1e3 * float(claps[0].split('K')[0]))\n", " else:\n", " clap_number = int(claps[0].split(' ')[0])\n", " else:\n", " clap_number = 0\n", "\n", " # Post tags\n", " tags = entry_soup.find_all(\n", " attrs={'class': 'tags tags--postTags tags--borderless'})\n", " tags = [li.text for li in tags[0].find_all('li')]\n", "\n", " # Responses to entry\n", " responses = entry_soup.find_all(attrs={'class': 'button button--chromeless u-baseColor--buttonNormal u-marginRight12',\n", " 'data-action': 'scroll-to-responses'})\n", " num_responses = int(responses[0].text) if len(responses) > 0 else 0\n", "\n", " # Store in dictionary\n", " entry_dict['title'] = title\n", " entry_dict['text'] = entry_text\n", " entry_dict['word_count'] = word_count\n", " entry_dict['claps'] = clap_number\n", " entry_dict['tags'] = tags\n", " entry_dict['num_responses'] = num_responses\n", "\n", " return entry_dict" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:12:00.421840Z", "start_time": "2018-12-30T19:11:59.708990Z" } }, "outputs": [ { "data": { "text/plain": [ "'The Copernican Principle and How to Use Statistics to Figure Out How Long Anything Will\\xa0Last'" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "1898" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "entry_dict = process_entry(entry, parallel=False)\n", "entry_dict['title']\n", "entry_dict['word_count']" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:12:02.069656Z", "start_time": "2018-12-30T19:12:00.424201Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
clapsfansnum_responsespublicationpublished_dateratioread_timereadsstarted_datetagstexttitletypeviewsword_count
0123272Towards Data Science2018-12-29 11:36:17.358000-06:0026.4184481492018-12-28 11:41:21.942000-06:00[Science, Towards Data Science, Education, Sta...The Copernican Principle and How to Use Statis...The Copernican Principle and How to Use Statis...published5641898
1352683None2018-12-27 12:30:46.878000-06:0019.28494271782018-12-25 15:28:41.450000-06:00[Books, Reading, Education, Writing, Self Impr...Books of 2018 1 year, 75 books, innumerable id...Books of 2018published9237125
\n", "
" ], "text/plain": [ " claps fans num_responses publication \\\n", "0 123 27 2 Towards Data Science \n", "1 352 68 3 None \n", "\n", " published_date ratio read_time reads \\\n", "0 2018-12-29 11:36:17.358000-06:00 26.41844 8 149 \n", "1 2018-12-27 12:30:46.878000-06:00 19.28494 27 178 \n", "\n", " started_date \\\n", "0 2018-12-28 11:41:21.942000-06:00 \n", "1 2018-12-25 15:28:41.450000-06:00 \n", "\n", " tags \\\n", "0 [Science, Towards Data Science, Education, Sta... \n", "1 [Books, Reading, Education, Writing, Self Impr... \n", "\n", " text \\\n", "0 The Copernican Principle and How to Use Statis... \n", "1 Books of 2018 1 year, 75 books, innumerable id... \n", "\n", " title type views \\\n", "0 The Copernican Principle and How to Use Statis... published 564 \n", "1 Books of 2018 published 923 \n", "\n", " word_count \n", "0 1898 \n", "1 7125 " ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results = []\n", "\n", "entry_dict = process_entry(entry, parallel=False)\n", "results.append(entry_dict)\n", "results.append(process_entry(table_rows[1], parallel=False))\n", "\n", "df = pd.DataFrame(results)\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Process Sequentially \n", "\n", "To see how long this takes when running in a sequence, run the following cell." ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:48.162455Z", "start_time": "2018-12-30T19:12:02.071265Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "99.17% complete. Total read time: 1548 minutes\r" ] } ], "source": [ "from timeit import default_timer as timer\n", "results = []\n", "\n", "start = timer()\n", "for i, e in enumerate(table_rows):\n", " print(f'{100 * i / len(table_rows):.2f}% complete. Total read time: {sum([t[\"read_time\"] for t in results])} minutes', \n", " end = '\\r')\n", " results.append(process_entry(e, parallel=False))\n", "end = timer()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:48.167014Z", "start_time": "2018-12-30T19:13:48.163806Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total time 106.09 seconds for processing 121 articles.\n" ] } ], "source": [ "print(f'Total time {end-start:.2f} seconds for processing {len(results)} articles.')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Almost all of the time is taken up by accessing the articles using requests. We'll vastly speed up this operation by using multiprocessing." ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:48.187659Z", "start_time": "2018-12-30T19:13:48.168801Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
clapsfansnum_responsespublicationpublished_dateratioread_timereadsstarted_datetagstexttitletypeviewsword_count
0123272Towards Data Science2018-12-29 11:36:17.358000-06:0026.41844081492018-12-28 11:41:21.942000-06:00[Science, Towards Data Science, Education, Sta...The Copernican Principle and How to Use Statis...The Copernican Principle and How to Use Statis...published5641898
1352683None2018-12-27 12:30:46.878000-06:0019.284940271782018-12-25 15:28:41.450000-06:00[Books, Reading, Education, Writing, Self Impr...Books of 2018 1 year, 75 books, innumerable id...Books of 2018published9237125
2000None2018-12-27 07:59:59.069000-06:008.3333334322018-06-10 07:20:24.669000-05:00[Books, Reading, Education, Writing, Self-awar...Books of 2018 Notes Complete and unedited thou...Books of 2018 Notesunlisted2412083
3630None2018-12-25 21:27:02.135000-06:0027.48091614362018-01-10 08:20:37.597000-06:00[Data Science, Machine Learning, Education, En...Building Energy Data Analysis Part One Backgro...Building Energy Data Analysis Part Oneunlisted1313068
4000None2018-12-25 21:26:27.361000-06:0016.6666672412018-01-10 08:19:51.970000-06:00[Data Science, Machine Learning, Education, En...Building Energy Data Analysis Part Two Plots, ...Building Energy Data Analysis Part Twounlisted64145
\n", "
" ], "text/plain": [ " claps fans num_responses publication \\\n", "0 123 27 2 Towards Data Science \n", "1 352 68 3 None \n", "2 0 0 0 None \n", "3 6 3 0 None \n", "4 0 0 0 None \n", "\n", " published_date ratio read_time reads \\\n", "0 2018-12-29 11:36:17.358000-06:00 26.418440 8 149 \n", "1 2018-12-27 12:30:46.878000-06:00 19.284940 27 178 \n", "2 2018-12-27 07:59:59.069000-06:00 8.333333 43 2 \n", "3 2018-12-25 21:27:02.135000-06:00 27.480916 14 36 \n", "4 2018-12-25 21:26:27.361000-06:00 16.666667 24 1 \n", "\n", " started_date \\\n", "0 2018-12-28 11:41:21.942000-06:00 \n", "1 2018-12-25 15:28:41.450000-06:00 \n", "2 2018-06-10 07:20:24.669000-05:00 \n", "3 2018-01-10 08:20:37.597000-06:00 \n", "4 2018-01-10 08:19:51.970000-06:00 \n", "\n", " tags \\\n", "0 [Science, Towards Data Science, Education, Sta... \n", "1 [Books, Reading, Education, Writing, Self Impr... \n", "2 [Books, Reading, Education, Writing, Self-awar... \n", "3 [Data Science, Machine Learning, Education, En... \n", "4 [Data Science, Machine Learning, Education, En... \n", "\n", " text \\\n", "0 The Copernican Principle and How to Use Statis... \n", "1 Books of 2018 1 year, 75 books, innumerable id... \n", "2 Books of 2018 Notes Complete and unedited thou... \n", "3 Building Energy Data Analysis Part One Backgro... \n", "4 Building Energy Data Analysis Part Two Plots, ... \n", "\n", " title type views \\\n", "0 The Copernican Principle and How to Use Statis... published 564 \n", "1 Books of 2018 published 923 \n", "2 Books of 2018 Notes unlisted 24 \n", "3 Building Energy Data Analysis Part One unlisted 131 \n", "4 Building Energy Data Analysis Part Two unlisted 6 \n", "\n", " word_count \n", "0 1898 \n", "1 7125 \n", "2 12083 \n", "3 3068 \n", "4 4145 " ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.DataFrame(results)\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Process in Parallel\n", "\n", "To speed things up, we want to run the operations in parallel.\n", "\n", "First, we'll need to convert the table rows to strings because of how pool pickles objects. Beautiful soup objects cannot be pickled, but strings can be. This is slightly inconvenient, but the results will come out fine." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:51.557459Z", "start_time": "2018-12-30T19:13:48.189731Z" } }, "outputs": [], "source": [ "from multiprocessing import Pool\n", "import sys\n", "\n", "table_rows_str = [str(r) for r in table_rows]\n", "\n", "start = timer()\n", "pool = Pool(processes=50)\n", "results = pool.map(process_entry, table_rows_str)\n", "end = timer()\n", "pool.close()\n", "pool.join()" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:51.565838Z", "start_time": "2018-12-30T19:13:51.561772Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Processed 121 articles in 3.26 seconds.\n" ] } ], "source": [ "print(f'Processed {len(results)} articles in {end-start:.2f} seconds.')" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:51.592880Z", "start_time": "2018-12-30T19:13:51.568239Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
clapsfansnum_responsespublicationpublished_dateratioread_timereadsstarted_datetagstexttitletypeviewsword_count
0123272Towards Data Science2018-12-29 11:36:17.358000-06:0026.41844081492018-12-28 11:41:21.942000-06:00[Science, Towards Data Science, Education, Sta...The Copernican Principle and How to Use Statis...The Copernican Principle and How to Use Statis...published5641898
1352683None2018-12-27 12:30:46.878000-06:0019.284940271782018-12-25 15:28:41.450000-06:00[Books, Reading, Education, Writing, Self Impr...Books of 2018 1 year, 75 books, innumerable id...Books of 2018published9237125
2000None2018-12-27 07:59:59.069000-06:008.3333334322018-06-10 07:20:24.669000-05:00[Books, Reading, Education, Writing, Self-awar...Books of 2018 Notes Complete and unedited thou...Books of 2018 Notesunlisted2412083
3630None2018-12-25 21:27:02.135000-06:0027.48091614362018-01-10 08:20:37.597000-06:00[Data Science, Machine Learning, Education, En...Building Energy Data Analysis Part One Backgro...Building Energy Data Analysis Part Oneunlisted1313068
4000None2018-12-25 21:26:27.361000-06:0016.6666672412018-01-10 08:19:51.970000-06:00[Data Science, Machine Learning, Education, En...Building Energy Data Analysis Part Two Plots, ...Building Energy Data Analysis Part Twounlisted64145
\n", "
" ], "text/plain": [ " claps fans num_responses publication \\\n", "0 123 27 2 Towards Data Science \n", "1 352 68 3 None \n", "2 0 0 0 None \n", "3 6 3 0 None \n", "4 0 0 0 None \n", "\n", " published_date ratio read_time reads \\\n", "0 2018-12-29 11:36:17.358000-06:00 26.418440 8 149 \n", "1 2018-12-27 12:30:46.878000-06:00 19.284940 27 178 \n", "2 2018-12-27 07:59:59.069000-06:00 8.333333 43 2 \n", "3 2018-12-25 21:27:02.135000-06:00 27.480916 14 36 \n", "4 2018-12-25 21:26:27.361000-06:00 16.666667 24 1 \n", "\n", " started_date \\\n", "0 2018-12-28 11:41:21.942000-06:00 \n", "1 2018-12-25 15:28:41.450000-06:00 \n", "2 2018-06-10 07:20:24.669000-05:00 \n", "3 2018-01-10 08:20:37.597000-06:00 \n", "4 2018-01-10 08:19:51.970000-06:00 \n", "\n", " tags \\\n", "0 [Science, Towards Data Science, Education, Sta... \n", "1 [Books, Reading, Education, Writing, Self Impr... \n", "2 [Books, Reading, Education, Writing, Self-awar... \n", "3 [Data Science, Machine Learning, Education, En... \n", "4 [Data Science, Machine Learning, Education, En... \n", "\n", " text \\\n", "0 The Copernican Principle and How to Use Statis... \n", "1 Books of 2018 1 year, 75 books, innumerable id... \n", "2 Books of 2018 Notes Complete and unedited thou... \n", "3 Building Energy Data Analysis Part One Backgro... \n", "4 Building Energy Data Analysis Part Two Plots, ... \n", "\n", " title type views \\\n", "0 The Copernican Principle and How to Use Statis... published 564 \n", "1 Books of 2018 published 923 \n", "2 Books of 2018 Notes unlisted 24 \n", "3 Building Energy Data Analysis Part One unlisted 131 \n", "4 Building Energy Data Analysis Part Two unlisted 6 \n", "\n", " word_count \n", "0 1898 \n", "1 7125 \n", "2 12083 \n", "3 3068 \n", "4 4145 " ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.DataFrame(results)\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Function to Process Articles in Parallel\n", "\n", "The below function processes all of the entries in parallel. It returns a dataframe with the relevant information." ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:51.602293Z", "start_time": "2018-12-30T19:13:51.594406Z" } }, "outputs": [], "source": [ "def process_in_parallel(table_rows, processes=20):\n", " \"\"\"\n", " Process all the stats in a table in parallel\n", "\n", " :note: make sure to set the correct time zone in `process_entry`\n", "\n", " :param table_rows: BeautifulSoup table rows\n", " \n", " :param processes: integer number of processes (threads) to use in parallel\n", "\n", " :return df: dataframe of information about each post\n", "\n", " \"\"\"\n", " # Convert to strings for multiprocessing\n", " table_rows_str = [str(r) for r in table_rows]\n", "\n", " # Process each article in paralllel\n", " pool = Pool(processes=processes)\n", " results = []\n", " start = timer()\n", " for i, r in enumerate(pool.imap_unordered(process_entry, table_rows_str)):\n", " # Report progress\n", " print(f'{100 * i / len(table_rows_str):.2f}% complete.', end='\\r')\n", " results.append(r)\n", " pool.close()\n", " pool.join()\n", " end = timer()\n", " print(\n", " f'Processed {len(table_rows_str)} articles in {end-start:.2f} seconds.')\n", "\n", " # Convert to dataframe\n", " df = pd.DataFrame(results)\n", " # Add extra columns with more data\n", " df['claps_per_word'] = df['claps'] / df['word_count']\n", " df['edit_days'] = (df['published_date'] - df['started_date']\n", " ).dt.total_seconds() / (60 * 60 * 24)\n", "\n", " # 5 most common tags (might want to include more tags)\n", " n = 5\n", " all_tags = list(chain(*df['tags'].tolist()))\n", " tag_counts = Counter(all_tags)\n", " tags = tag_counts.most_common(n)\n", "\n", " # Adding columns with indication of tag\n", " for tag, count in tags:\n", " flag = [1 if tag in tags else 0 for tags in df['tags']]\n", " df.loc[:, f'{tag}'] = flag\n", "\n", " df.sort_values('published_date', inplace=True)\n", " return df" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:56.003383Z", "start_time": "2018-12-30T19:13:51.603663Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Processed 121 articles in 4.15 seconds.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
clapsfansnum_responsespublicationpublished_dateratioread_timereadsstarted_datetagstexttitletypeviewsword_countclaps_per_wordedit_days<tag>Education<tag>Data Science<tag>Towards Data Science<tag>Machine Learning<tag>Python
118220None2017-06-10 14:24:38.229000-05:0041.6149077672017-06-10 14:24:26.404000-05:00[Climate Change, Economics]Screw the Environment, but Consider Your Walle...Screw the Environment, but Consider Your Walletpublished16118590.0010760.00013700000
1031830None2017-06-17 22:02:29.514000-05:0033.12101914522017-06-17 22:02:00.502000-05:00[Climate Change, Humanity, Optimism, History]The Vanquishing of War, Plague and Famine Part...The Vanquishing of War, Plague and Faminepublished15738910.0046260.00033600000
11550190None2017-06-30 12:55:07.015000-05:0020.285714422132017-06-30 12:00:09.957000-05:00[Machine Learning, Python, Udacity, Kaggle]Capstone Project: Mercedes-Benz Greener Manufa...Capstone Project: Mercedes-Benz Greener Manufa...published1050120250.0041580.03816000011
96000None2017-07-01 09:08:27.810000-05:0036.5384629192017-06-30 18:20:43.479000-05:00[Politics, Books, News, Media Criticism]Home of the Scared A review of A Culture of Fe...Home of the Scaredpublished5225330.0000000.61648500000
98000None2017-07-05 08:50:40.780000-05:008.9285711452017-07-03 20:18:22.431000-05:00[Books, Psychology, History, Humanism]The Triumph of Peace A review of The Better An...The Triumph of Peacepublished5638920.0000001.52243500000
\n", "
" ], "text/plain": [ " claps fans num_responses publication published_date \\\n", "118 2 2 0 None 2017-06-10 14:24:38.229000-05:00 \n", "103 18 3 0 None 2017-06-17 22:02:29.514000-05:00 \n", "115 50 19 0 None 2017-06-30 12:55:07.015000-05:00 \n", "96 0 0 0 None 2017-07-01 09:08:27.810000-05:00 \n", "98 0 0 0 None 2017-07-05 08:50:40.780000-05:00 \n", "\n", " ratio read_time reads started_date \\\n", "118 41.614907 7 67 2017-06-10 14:24:26.404000-05:00 \n", "103 33.121019 14 52 2017-06-17 22:02:00.502000-05:00 \n", "115 20.285714 42 213 2017-06-30 12:00:09.957000-05:00 \n", "96 36.538462 9 19 2017-06-30 18:20:43.479000-05:00 \n", "98 8.928571 14 5 2017-07-03 20:18:22.431000-05:00 \n", "\n", " tags \\\n", "118 [Climate Change, Economics] \n", "103 [Climate Change, Humanity, Optimism, History] \n", "115 [Machine Learning, Python, Udacity, Kaggle] \n", "96 [Politics, Books, News, Media Criticism] \n", "98 [Books, Psychology, History, Humanism] \n", "\n", " text \\\n", "118 Screw the Environment, but Consider Your Walle... \n", "103 The Vanquishing of War, Plague and Famine Part... \n", "115 Capstone Project: Mercedes-Benz Greener Manufa... \n", "96 Home of the Scared A review of A Culture of Fe... \n", "98 The Triumph of Peace A review of The Better An... \n", "\n", " title type views \\\n", "118 Screw the Environment, but Consider Your Wallet published 161 \n", "103 The Vanquishing of War, Plague and Famine published 157 \n", "115 Capstone Project: Mercedes-Benz Greener Manufa... published 1050 \n", "96 Home of the Scared published 52 \n", "98 The Triumph of Peace published 56 \n", "\n", " word_count claps_per_word edit_days Education Data Science \\\n", "118 1859 0.001076 0.000137 0 0 \n", "103 3891 0.004626 0.000336 0 0 \n", "115 12025 0.004158 0.038160 0 0 \n", "96 2533 0.000000 0.616485 0 0 \n", "98 3892 0.000000 1.522435 0 0 \n", "\n", " Towards Data Science Machine Learning Python \n", "118 0 0 0 \n", "103 0 0 0 \n", "115 0 1 1 \n", "96 0 0 0 \n", "98 0 0 0 " ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = process_in_parallel(table_rows, processes=50)\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Analysis\n", "\n", "We'll do a little analysis here, but save the main analysis for a separate notebook." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Correlation Heatmap" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:56.609319Z", "start_time": "2018-12-30T19:13:56.005090Z" } }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": true }, "data": [ { "colorscale": "Portland", "reversescale": false, "showscale": false, "type": "heatmap", "uid": "c59ec846-61ad-4d42-8b3c-628b6032333b", "x": [ "claps", "fans", "num_responses", "ratio", "read_time", "reads", "views", "word_count", "claps_per_word", "edit_days", "Education", "Data Science", "Towards Data Science", "Machine Learning", "Python" ], "y": [ "claps", "fans", "num_responses", "ratio", "read_time", "reads", "views", "word_count", "claps_per_word", "edit_days", "Education", "Data Science", "Towards Data Science", "Machine Learning", "Python" ], "z": [ [ 1, 0.9923640394231349, 0.893292349044344, -0.001992784663889094, -0.17283259811797896, 0.7604386014116641, 0.7364423144316183, -0.17390209601360682, 0.7685840553845543, -0.17890735662081525, 0.21970012944465903, 0.33574369064558746, 0.5558508937500332, 0.1404920228456418, 0.2865895239195877 ], [ 0.9923640394231349, 1, 0.8692794844458743, -0.018688501291306454, -0.173547027410645, 0.7733646292528696, 0.7581584433192737, -0.17505530655010984, 0.7365749761778494, -0.17895757712631435, 0.21751871363037215, 0.3409618433372616, 0.5634575549346398, 0.1599387278745133, 0.2920904139703648 ], [ 0.893292349044344, 0.8692794844458743, 1, 0.09671637977826107, -0.19935094116374713, 0.7670612785100357, 0.704014309307784, -0.20386751699422345, 0.8011320930821566, -0.19197259410854733, 0.14556559091130455, 0.3002331856475762, 0.5243754774008249, 0.0537792502015359, 0.2972803849605666 ], [ -0.001992784663889094, -0.018688501291306454, 0.09671637977826107, 1, -0.6235985189453507, 0.025827607012127215, -0.1392761551594474, -0.5557142322279137, 0.28779296374962643, -0.22002492856823522, 0.043759589944041076, -0.03638402453918288, -0.05622747764814189, -0.34805382995232403, -0.2042124380973659 ], [ -0.17283259811797896, -0.173547027410645, -0.19935094116374713, -0.6235985189453507, 1, -0.14712496092620334, -0.06116510868854009, 0.9684723341894783, -0.24132519854654028, 0.47552986109720063, -0.2425553167062675, -0.11101783837474212, -0.22150764086305058, 0.2375090836605498, 0.11475817737589886 ], [ 0.7604386014116641, 0.7733646292528696, 0.7670612785100357, 0.025827607012127215, -0.14712496092620334, 1, 0.936521508852906, -0.16738596728367153, 0.5428424595398157, -0.1828096859707677, -0.04817773888468456, 0.3301174156920143, 0.355408427535868, 0.17917953547058546, 0.39463551841672945 ], [ 0.7364423144316183, 0.7581584433192737, 0.704014309307784, -0.1392761551594474, -0.06116510868854009, 0.936521508852906, 1, -0.09483199444505047, 0.37639198273754854, -0.17596192981931794, -0.061256522641400926, 0.3105209731212529, 0.341724958453586, 0.2619818882450905, 0.43490327436918874 ], [ -0.17390209601360682, -0.17505530655010984, -0.20386751699422345, -0.5557142322279137, 0.9684723341894783, -0.16738596728367153, -0.09483199444505047, 1, -0.2339878100037338, 0.47042234851664294, -0.20391846927004179, -0.10986885186875672, -0.20698703634441712, 0.2000966711178181, 0.03826781775424768 ], [ 0.7685840553845543, 0.7365749761778494, 0.8011320930821566, 0.28779296374962643, -0.24132519854654028, 0.5428424595398157, 0.37639198273754854, -0.2339878100037338, 1, -0.1286217088696006, 0.20577916164413018, 0.2473701062125306, 0.3680907606263125, -0.04589407663022471, 0.2079109529027413 ], [ -0.17890735662081525, -0.17895757712631435, -0.19197259410854733, -0.22002492856823522, 0.47552986109720063, -0.1828096859707677, -0.17596192981931794, 0.47042234851664294, -0.1286217088696006, 1, 0.1756135336345667, 0.14866096743896287, -0.20141178194933088, 0.24797804492469175, -0.17498878381722732 ], [ 0.21970012944465903, 0.21751871363037215, 0.14556559091130455, 0.043759589944041076, -0.2425553167062675, -0.04817773888468456, -0.061256522641400926, -0.20391846927004179, 0.20577916164413018, 0.1756135336345667, 1, 0.3640032127199305, 0.37951974370021074, 0.1384964039132693, -0.09414376822502499 ], [ 0.33574369064558746, 0.3409618433372616, 0.3002331856475762, -0.03638402453918288, -0.11101783837474212, 0.3301174156920143, 0.3105209731212529, -0.10986885186875672, 0.2473701062125306, 0.14866096743896287, 0.3640032127199305, 1, 0.3139392975496433, 0.3236940196755665, 0.04366875427805113 ], [ 0.5558508937500332, 0.5634575549346398, 0.5243754774008249, -0.05622747764814189, -0.22150764086305058, 0.355408427535868, 0.341724958453586, -0.20698703634441712, 0.3680907606263125, -0.20141178194933088, 0.37951974370021074, 0.3139392975496433, 1, 0.15723622363987622, 0.2294305078423008 ], [ 0.1404920228456418, 0.1599387278745133, 0.0537792502015359, -0.34805382995232403, 0.2375090836605498, 0.17917953547058546, 0.2619818882450905, 0.2000966711178181, -0.04589407663022471, 0.24797804492469175, 0.1384964039132693, 0.3236940196755665, 0.15723622363987622, 1, 0.2540429395319821 ], [ 0.2865895239195877, 0.2920904139703648, 0.2972803849605666, -0.2042124380973659, 0.11475817737589886, 0.39463551841672945, 0.43490327436918874, 0.03826781775424768, 0.2079109529027413, -0.17498878381722732, -0.09414376822502499, 0.04366875427805113, 0.2294305078423008, 0.2540429395319821, 1 ] ] } ], "layout": { "annotations": [ { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "claps", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.99", "x": "fans", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.89", "x": "num_responses", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.0", "x": "ratio", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.17", "x": "read_time", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.76", "x": "reads", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.74", "x": "views", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.17", "x": "word_count", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.77", "x": "claps_per_word", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.18", "x": "edit_days", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.22", "x": "Education", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.34", "x": "Data Science", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.56", "x": "Towards Data Science", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.14", "x": "Machine Learning", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.29", "x": "Python", "xref": "x", "y": "claps", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.99", "x": "claps", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "fans", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.87", "x": "num_responses", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.02", "x": "ratio", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.17", "x": "read_time", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.77", "x": "reads", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.76", "x": "views", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.18", "x": "word_count", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.74", "x": "claps_per_word", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.18", "x": "edit_days", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.22", "x": "Education", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.34", "x": "Data Science", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.56", "x": "Towards Data Science", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.16", "x": "Machine Learning", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.29", "x": "Python", "xref": "x", "y": "fans", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.89", "x": "claps", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.87", "x": "fans", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "num_responses", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.1", "x": "ratio", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.2", "x": "read_time", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.77", "x": "reads", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.7", "x": "views", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.2", "x": "word_count", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.8", "x": "claps_per_word", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.19", "x": "edit_days", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.15", "x": "Education", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.3", "x": "Data Science", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.52", "x": "Towards Data Science", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.05", "x": "Machine Learning", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.3", "x": "Python", "xref": "x", "y": "num_responses", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.0", "x": "claps", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.02", "x": "fans", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.1", "x": "num_responses", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "ratio", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.62", "x": "read_time", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.03", "x": "reads", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.14", "x": "views", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.56", "x": "word_count", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.29", "x": "claps_per_word", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.22", "x": "edit_days", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.04", "x": "Education", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.04", "x": "Data Science", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.06", "x": "Towards Data Science", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.35", "x": "Machine Learning", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.2", "x": "Python", "xref": "x", "y": "ratio", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.17", "x": "claps", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.17", "x": "fans", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.2", "x": "num_responses", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.62", "x": "ratio", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "read_time", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.15", "x": "reads", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.06", "x": "views", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.97", "x": "word_count", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.24", "x": "claps_per_word", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.48", "x": "edit_days", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.24", "x": "Education", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.11", "x": "Data Science", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.22", "x": "Towards Data Science", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.24", "x": "Machine Learning", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.11", "x": "Python", "xref": "x", "y": "read_time", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.76", "x": "claps", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.77", "x": "fans", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.77", "x": "num_responses", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.03", "x": "ratio", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.15", "x": "read_time", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "reads", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.94", "x": "views", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.17", "x": "word_count", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.54", "x": "claps_per_word", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.18", "x": "edit_days", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.05", "x": "Education", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.33", "x": "Data Science", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.36", "x": "Towards Data Science", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.18", "x": "Machine Learning", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.39", "x": "Python", "xref": "x", "y": "reads", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.74", "x": "claps", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.76", "x": "fans", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.7", "x": "num_responses", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.14", "x": "ratio", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.06", "x": "read_time", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.94", "x": "reads", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "views", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.09", "x": "word_count", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.38", "x": "claps_per_word", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.18", "x": "edit_days", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.06", "x": "Education", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.31", "x": "Data Science", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.34", "x": "Towards Data Science", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.26", "x": "Machine Learning", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.43", "x": "Python", "xref": "x", "y": "views", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.17", "x": "claps", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.18", "x": "fans", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.2", "x": "num_responses", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.56", "x": "ratio", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.97", "x": "read_time", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.17", "x": "reads", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.09", "x": "views", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "word_count", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.23", "x": "claps_per_word", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.47", "x": "edit_days", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.2", "x": "Education", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.11", "x": "Data Science", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.21", "x": "Towards Data Science", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.2", "x": "Machine Learning", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.04", "x": "Python", "xref": "x", "y": "word_count", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.77", "x": "claps", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.74", "x": "fans", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.8", "x": "num_responses", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.29", "x": "ratio", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.24", "x": "read_time", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.54", "x": "reads", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.38", "x": "views", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.23", "x": "word_count", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "claps_per_word", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.13", "x": "edit_days", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.21", "x": "Education", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.25", "x": "Data Science", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.37", "x": "Towards Data Science", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.05", "x": "Machine Learning", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.21", "x": "Python", "xref": "x", "y": "claps_per_word", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.18", "x": "claps", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.18", "x": "fans", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.19", "x": "num_responses", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.22", "x": "ratio", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.48", "x": "read_time", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.18", "x": "reads", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.18", "x": "views", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.47", "x": "word_count", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.13", "x": "claps_per_word", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "edit_days", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.18", "x": "Education", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.15", "x": "Data Science", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.2", "x": "Towards Data Science", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.25", "x": "Machine Learning", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.17", "x": "Python", "xref": "x", "y": "edit_days", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.22", "x": "claps", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.22", "x": "fans", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.15", "x": "num_responses", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.04", "x": "ratio", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.24", "x": "read_time", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.05", "x": "reads", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.06", "x": "views", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.2", "x": "word_count", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.21", "x": "claps_per_word", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.18", "x": "edit_days", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "Education", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.36", "x": "Data Science", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.38", "x": "Towards Data Science", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.14", "x": "Machine Learning", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.09", "x": "Python", "xref": "x", "y": "Education", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.34", "x": "claps", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.34", "x": "fans", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.3", "x": "num_responses", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.04", "x": "ratio", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.11", "x": "read_time", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.33", "x": "reads", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.31", "x": "views", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.11", "x": "word_count", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.25", "x": "claps_per_word", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.15", "x": "edit_days", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.36", "x": "Education", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "Data Science", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.31", "x": "Towards Data Science", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.32", "x": "Machine Learning", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.04", "x": "Python", "xref": "x", "y": "Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.56", "x": "claps", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.56", "x": "fans", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.52", "x": "num_responses", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.06", "x": "ratio", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.22", "x": "read_time", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.36", "x": "reads", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.34", "x": "views", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.21", "x": "word_count", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.37", "x": "claps_per_word", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.2", "x": "edit_days", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.38", "x": "Education", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.31", "x": "Data Science", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "Towards Data Science", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.16", "x": "Machine Learning", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.23", "x": "Python", "xref": "x", "y": "Towards Data Science", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.14", "x": "claps", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.16", "x": "fans", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.05", "x": "num_responses", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.35", "x": "ratio", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.24", "x": "read_time", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.18", "x": "reads", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.26", "x": "views", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.2", "x": "word_count", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.05", "x": "claps_per_word", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.25", "x": "edit_days", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.14", "x": "Education", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.32", "x": "Data Science", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.16", "x": "Towards Data Science", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "Machine Learning", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.25", "x": "Python", "xref": "x", "y": "Machine Learning", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.29", "x": "claps", "xref": "x", "y": "Python", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.29", "x": "fans", "xref": "x", "y": "Python", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.3", "x": "num_responses", "xref": "x", "y": "Python", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.2", "x": "ratio", "xref": "x", "y": "Python", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.11", "x": "read_time", "xref": "x", "y": "Python", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.39", "x": "reads", "xref": "x", "y": "Python", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.43", "x": "views", "xref": "x", "y": "Python", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.04", "x": "word_count", "xref": "x", "y": "Python", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.21", "x": "claps_per_word", "xref": "x", "y": "Python", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.17", "x": "edit_days", "xref": "x", "y": "Python", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "-0.09", "x": "Education", "xref": "x", "y": "Python", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.04", "x": "Data Science", "xref": "x", "y": "Python", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.23", "x": "Towards Data Science", "xref": "x", "y": "Python", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "0.25", "x": "Machine Learning", "xref": "x", "y": "Python", "yref": "y" }, { "font": { "color": "#000000" }, "showarrow": false, "text": "1.0", "x": "Python", "xref": "x", "y": "Python", "yref": "y" } ], "xaxis": { "dtick": 1, "gridcolor": "rgb(0, 0, 0)", "side": "top", "ticks": "" }, "yaxis": { "dtick": 1, "ticks": "", "ticksuffix": " " } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import plotly.figure_factory as ff\n", "from plotly.offline import iplot\n", "\n", "corrs = df.corr()\n", "figure = ff.create_annotated_heatmap(\n", " z=corrs.values,\n", " x=list(corrs.columns),\n", " y=list(corrs.index),\n", " colorscale='Portland',\n", " annotation_text=corrs.round(2).values)\n", "iplot(figure)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Scatterplot Matrix" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:56.871729Z", "start_time": "2018-12-30T19:13:56.611048Z" } }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": true }, "data": [ { "marker": { "color": "rgb(31, 119, 180)" }, "showlegend": false, "type": "histogram", "uid": "5bbe936f-3310-45d9-b525-28f2db01bd65", "x": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 21, 11, 9, 19, 17, 15, 5, 11, 12, 14, 6, 11, 5, 6, 12, 6, 7, 4, 6, 11, 6, 10, 3, 6, 12, 3, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 9, 8, 13, 10, 9, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 6, 9, 5, 8, 27, 8 ], "xaxis": "x", "yaxis": "y" }, { "marker": { "color": "rgb(255, 127, 14)" }, "showlegend": false, "type": "histogram", "uid": "ddaec6d9-1ee3-4982-969d-3b6a6a2facff", "x": [ 8, 8, 54, 13, 35, 43, 24, 14, 43 ], "xaxis": "x", "yaxis": "y" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 6 }, "mode": "markers", "name": "published", "showlegend": true, "type": "scatter", "uid": "a97c973a-0609-4365-ac39-0e9cb7960588", "x": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 4700, 2600, 72, 123, 856, 186, 11, 119, 2000, 4100, 59, 2700, 77, 14, 6900, 1200, 275, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 101, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 304, 2500, 917, 2000, 976, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 704, 800, 477, 334, 352, 123 ], "xaxis": "x2", "y": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 21, 11, 9, 19, 17, 15, 5, 11, 12, 14, 6, 11, 5, 6, 12, 6, 7, 4, 6, 11, 6, 10, 3, 6, 12, 3, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 9, 8, 13, 10, 9, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 6, 9, 5, 8, 27, 8 ], "yaxis": "y2" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 6 }, "mode": "markers", "name": "unlisted", "showlegend": true, "type": "scatter", "uid": "fe8dc313-d216-496f-9c71-ccd7128b7f56", "x": [ 204, 120, 26, 0, 24, 5, 0, 6, 0 ], "xaxis": "x2", "y": [ 8, 8, 54, 13, 35, 43, 24, 14, 43 ], "yaxis": "y2" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 6 }, "mode": "markers", "name": "published", "showlegend": false, "type": "scatter", "uid": "b20ceb95-05b9-4b9f-942d-1a9dd3ab8ba1", "x": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 21, 11, 9, 19, 17, 15, 5, 11, 12, 14, 6, 11, 5, 6, 12, 6, 7, 4, 6, 11, 6, 10, 3, 6, 12, 3, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 9, 8, 13, 10, 9, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 6, 9, 5, 8, 27, 8 ], "xaxis": "x3", "y": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 4700, 2600, 72, 123, 856, 186, 11, 119, 2000, 4100, 59, 2700, 77, 14, 6900, 1200, 275, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 101, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 304, 2500, 917, 2000, 976, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 704, 800, 477, 334, 352, 123 ], "yaxis": "y3" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 6 }, "mode": "markers", "name": "unlisted", "showlegend": false, "type": "scatter", "uid": "15ae9066-3bd9-45ce-ba6c-731e9c1f735f", "x": [ 8, 8, 54, 13, 35, 43, 24, 14, 43 ], "xaxis": "x3", "y": [ 204, 120, 26, 0, 24, 5, 0, 6, 0 ], "yaxis": "y3" }, { "marker": { "color": "rgb(31, 119, 180)" }, "showlegend": false, "type": "histogram", "uid": "24022437-c220-4d2d-836e-145c55f5cf82", "x": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 4700, 2600, 72, 123, 856, 186, 11, 119, 2000, 4100, 59, 2700, 77, 14, 6900, 1200, 275, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 101, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 304, 2500, 917, 2000, 976, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 704, 800, 477, 334, 352, 123 ], "xaxis": "x4", "yaxis": "y4" }, { "marker": { "color": "rgb(255, 127, 14)" }, "showlegend": false, "type": "histogram", "uid": "a3d6729b-cc00-4482-b464-ca0bc8140ee8", "x": [ 204, 120, 26, 0, 24, 5, 0, 6, 0 ], "xaxis": "x4", "yaxis": "y4" } ], "layout": { "barmode": "stack", "height": 800, "showlegend": true, "title": "Scatterplot Matrix", "width": 800, "xaxis": { "anchor": "y", "domain": [ 0, 0.45 ] }, "xaxis2": { "anchor": "y2", "domain": [ 0.55, 1 ] }, "xaxis3": { "anchor": "y3", "domain": [ 0, 0.45 ], "title": "read_time" }, "xaxis4": { "anchor": "y4", "domain": [ 0.55, 1 ], "title": "claps" }, "yaxis": { "anchor": "x", "domain": [ 0.575, 1 ], "title": "read_time" }, "yaxis2": { "anchor": "x2", "domain": [ 0.575, 1 ] }, "yaxis3": { "anchor": "x3", "domain": [ 0, 0.425 ], "title": "claps" }, "yaxis4": { "anchor": "x4", "domain": [ 0, 0.425 ] } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figure = ff.create_scatterplotmatrix(df[['read_time', 'claps', 'type']],\n", " index = 'type',\n", " diag='histogram', width=800, height=800)\n", "# figure\n", "iplot(figure)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:57.040585Z", "start_time": "2018-12-30T19:13:56.873158Z" } }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": true }, "data": [ { "marker": { "color": "rgb(31, 119, 180)" }, "showlegend": false, "type": "histogram", "uid": "1d45171c-0283-475b-a9bd-bec639dde69c", "x": [ 9 ], "xaxis": "x", "yaxis": "y" }, { "marker": { "color": "rgb(255, 127, 14)" }, "showlegend": false, "type": "histogram", "uid": "78081dcd-12f0-4d7e-af99-3b4abc514e83", "x": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 11, 9, 19, 5, 6, 6, 7, 3, 6, 8, 8, 8, 54, 13, 35, 43, 24, 14, 43, 27 ], "xaxis": "x", "yaxis": "y" }, { "marker": { "color": "rgb(44, 160, 44)" }, "showlegend": false, "type": "histogram", "uid": "d6316a38-036b-4d5d-bb1c-30cd905e132e", "x": [ 9 ], "xaxis": "x", "yaxis": "y" }, { "marker": { "color": "rgb(214, 39, 40)" }, "showlegend": false, "type": "histogram", "uid": "b9b52a0c-6c52-4396-b7fe-ee60bd356a4f", "x": [ 21, 17, 15, 11, 12, 14, 11, 5, 12, 6, 4, 6, 11, 6, 10, 3, 6, 12, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 8, 13, 10, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 9, 5, 8 ], "xaxis": "x", "yaxis": "y" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 6 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": true, "type": "scatter", "uid": "8637846d-b33d-4f3d-b167-71eea70b3a37", "x": [ 304 ], "xaxis": "x2", "y": [ 9 ], "yaxis": "y2" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 6 }, "mode": "markers", "name": "None", "showlegend": true, "type": "scatter", "uid": "4e49247e-3b7f-4455-aa8d-5018644541f3", "x": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 2600, 72, 123, 11, 59, 14, 275, 101, 704, 204, 120, 334, 26, 0, 24, 5, 0, 6, 0, 352 ], "xaxis": "x2", "y": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 11, 9, 19, 5, 6, 6, 7, 3, 6, 8, 8, 8, 54, 13, 35, 43, 24, 14, 43, 27 ], "yaxis": "y2" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 6 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": true, "type": "scatter", "uid": "66c88775-3d0a-42ed-9209-0acb0fd256a9", "x": [ 976 ], "xaxis": "x2", "y": [ 9 ], "yaxis": "y2" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 6 }, "mode": "markers", "name": "Towards Data Science", "showlegend": true, "type": "scatter", "uid": "d5dfadfb-c0eb-46a2-ae16-d7d35490eb5e", "x": [ 4700, 856, 186, 119, 2000, 4100, 2700, 77, 6900, 1200, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 2500, 917, 2000, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 800, 477, 123 ], "xaxis": "x2", "y": [ 21, 17, 15, 11, 12, 14, 11, 5, 12, 6, 4, 6, 11, 6, 10, 3, 6, 12, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 8, 13, 10, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 9, 5, 8 ], "yaxis": "y2" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 6 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "788d2b5f-e5fa-41e2-a509-fbda59ddeadf", "x": [ 9 ], "xaxis": "x3", "y": [ 304 ], "yaxis": "y3" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 6 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "cefa9f87-9813-4440-b3ce-b3daea30ff59", "x": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 11, 9, 19, 5, 6, 6, 7, 3, 6, 8, 8, 8, 54, 13, 35, 43, 24, 14, 43, 27 ], "xaxis": "x3", "y": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 2600, 72, 123, 11, 59, 14, 275, 101, 704, 204, 120, 334, 26, 0, 24, 5, 0, 6, 0, 352 ], "yaxis": "y3" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 6 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "de354a8e-4d8e-438b-9757-f2b2e4bcf237", "x": [ 9 ], "xaxis": "x3", "y": [ 976 ], "yaxis": "y3" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 6 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "8b4f56c6-a70b-454f-ba4d-f7b69e291a8a", "x": [ 21, 17, 15, 11, 12, 14, 11, 5, 12, 6, 4, 6, 11, 6, 10, 3, 6, 12, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 8, 13, 10, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 9, 5, 8 ], "xaxis": "x3", "y": [ 4700, 856, 186, 119, 2000, 4100, 2700, 77, 6900, 1200, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 2500, 917, 2000, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 800, 477, 123 ], "yaxis": "y3" }, { "marker": { "color": "rgb(31, 119, 180)" }, "showlegend": false, "type": "histogram", "uid": "feefd4f9-8b8b-4616-aa07-63c559c5bb84", "x": [ 304 ], "xaxis": "x4", "yaxis": "y4" }, { "marker": { "color": "rgb(255, 127, 14)" }, "showlegend": false, "type": "histogram", "uid": "58c86359-8617-4e9f-bf25-1fd7d38b8cb7", "x": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 2600, 72, 123, 11, 59, 14, 275, 101, 704, 204, 120, 334, 26, 0, 24, 5, 0, 6, 0, 352 ], "xaxis": "x4", "yaxis": "y4" }, { "marker": { "color": "rgb(44, 160, 44)" }, "showlegend": false, "type": "histogram", "uid": "bdaeefc2-24e5-4923-8bf5-55bd5a61e6bd", "x": [ 976 ], "xaxis": "x4", "yaxis": "y4" }, { "marker": { "color": "rgb(214, 39, 40)" }, "showlegend": false, "type": "histogram", "uid": "f199db65-4ef7-42bb-98e4-f6e9a881f4f8", "x": [ 4700, 856, 186, 119, 2000, 4100, 2700, 77, 6900, 1200, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 2500, 917, 2000, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 800, 477, 123 ], "xaxis": "x4", "yaxis": "y4" } ], "layout": { "barmode": "stack", "height": 800, "showlegend": true, "title": "Scatterplot Matrix", "width": 800, "xaxis": { "anchor": "y", "domain": [ 0, 0.45 ] }, "xaxis2": { "anchor": "y2", "domain": [ 0.55, 1 ] }, "xaxis3": { "anchor": "y3", "domain": [ 0, 0.45 ], "title": "read_time" }, "xaxis4": { "anchor": "y4", "domain": [ 0.55, 1 ], "title": "claps" }, "yaxis": { "anchor": "x", "domain": [ 0.575, 1 ], "title": "read_time" }, "yaxis2": { "anchor": "x2", "domain": [ 0.575, 1 ] }, "yaxis3": { "anchor": "x3", "domain": [ 0, 0.425 ], "title": "claps" }, "yaxis4": { "anchor": "x4", "domain": [ 0, 0.425 ] } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figure = ff.create_scatterplotmatrix(df[['read_time', 'claps', 'publication']],\n", " index = 'publication',\n", " diag='histogram', width=800, height=800)\n", "# figure\n", "iplot(figure)" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:57.149850Z", "start_time": "2018-12-30T19:13:57.042480Z" } }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": true }, "data": [ { "line": { "color": "rgba(226, 74, 51, 1.0)", "dash": "solid", "shape": "linear", "width": 1.3 }, "marker": { "size": 12, "symbol": "circle" }, "mode": "markers", "name": "views", "text": [ "Screw the Environment, but Consider Your Wallet", "The Vanquishing of War, Plague and Famine", "Capstone Project: Mercedes-Benz Greener Manufacturing Competition", "Home of the Scared", "The Triumph of Peace", "NASA Internship Report", "Deep Neural Network Classifier", "Object Recognition with Google’s Convolutional Neural Networks", "Make an Effort, Not an Excuse", "The Ascent of Humanity", "Facial Recognition Using Google’s Convolutional Neural Network", "Exploratory Data Analysis with R (No Code)", "The Technology Frontier", "Data Analysis with Python", "Data Wrangling with Python and SQLite", "Controlling your Location in Google Chrome", "Machine Learning with Python on the Enron Dataset", "The Worst They Can Say is No", "Artificial Intelligence Part 1: Search", "The Case for Criticism", "Random Forest in Python", "Random Forest Simple Explanation", "Complete Books of 2017", "Top Books of 2017", "Improving the Random Forest in Python Part 1", "Data Science: A Personal Application", "The Simple Science of Global Warming", "A Theory of Prediction", "Hyperparameter Tuning the Random Forest in Python", "Time Series Analysis in Python: An Introduction", "The Failures of Common Sense", "Stock Analysis in Python", "A Review of the Coursera Machine Learning Specialization", "The Perils of Rare Events", "Stock Prediction in Python", "Correlation vs. Causation: An Example", "Real Life Superpowers", "Learn By Sharing", "Overfitting vs. Underfitting: A Conceptual Explanation", "Overfitting vs. Underfitting: A Complete Example", "How to Master New Skills", "Statistical Significance Explained", "Python is the Perfect Tool for any Problem", "The Misleading Effect of Noise: The Multiple Comparisons Problem", "Markov Chain Monte Carlo in Python", "Slow Tech: Take Back Your Mind", "Bayes’ Rule Applied", "Data Visualization Hackathon Style", "Unintended Consequences and Goodhart’s Law", "Beyond Accuracy: Precision and Recall", "Controlling the Web with Python", "Data Visualization with Bokeh in Python, Part I: Getting Started", "Data Visualization with Bokeh in Python, Part II: Interactions", "Histograms and Density Plots in Python", "Data Visualization with Bokeh in Python, Part III: Making a Complete Dashboard", "Visualizing Data with Pairs Plots in Python", "Introduction to Bayesian Linear Regression", "Bayesian Linear Regression in Python: Using Machine Learning to Predict Student Grades Part 1", "Bayesian Linear Regression in Python: Using Machine Learning to Predict Student Grades Part 2", "Web Scraping, Regular Expressions, and Data Visualization: Doing it all in Python", "If your files are saved only on your laptop they might as well not exist!", "A Complete Machine Learning Project Walk-Through in Python: Part One", "A Complete Machine Learning Walk-Through in Python: Part Two", "A Complete Machine Learning Walk-Through in Python: Part Three", "Automated Machine Learning on the Cloud in Python", "Machine Learning Kaggle Competition Part One: Getting Started", "Automated Feature Engineering in Python", "Machine Learning Kaggle Competition Part Two: Improving", "A Feature Selection Tool for Machine Learning in Python", "A Conceptual Explanation of Bayesian Hyperparameter Optimization for Machine Learning", "An Introductory Example of Bayesian Optimization in Python with Hyperopt", "Automated Machine Learning Hyperparameter Tuning in Python", "Machine Learning Kaggle Competition: Part Three Optimization", "How to get the right data? Trying asking for it.", "Why Automated Feature Engineering Will Change the Way You Do Machine Learning", "The most important part of a data science project is writing a blog post", "Parallelizing Feature Engineering with Dask", "How to Visualize a Decision Tree from a Random Forest in Python using Scikit-Learn", "A “Data Science for Good“ Machine Learning Project Walk-Through in Python: Part One", "A “Data Science for Good” Machine Learning Project Walk-Through in Python: Part Two", "How to Put Fully Interactive, Runnable Code in a Medium Post", "An Implementation and Explanation of the Random Forest in Python", "Practical Advice for Data Science Writing", "Another Machine Learning Walk-Through and a Challenge", "Five Minutes to Your Own Website", "Converting Medium Posts to Markdown for Your Blog", "Wikipedia Data Science: Working with the World’s Largest Encyclopedia", "Featuretools on Spark", "Neural Network Embeddings Explained", "Building a Recommendation System Using Neural Network Embeddings", "Simpson’s Paradox: How to Prove Opposite Arguments with the Same Data", "The Power of I Don’t Know", "My Weaknesses as a Data Scientist", "Overcome Your Biases with Data", "Recurrent Neural Networks by Example in Python", "Prediction Engineering: How to Set Up Your Machine Learning Problem", "How to Create Value with Machine Learning", "Feature Engineering: What Powers Machine Learning", "Modeling: Teaching a Machine Learning Algorithm to Deliver Business Value", "Deploying a Keras Deep Learning Model as a Web Application in Python", "Deploying a Python Web App on AWS", "Transfer Learning with Convolutional Neural Networks in PyTorch", "Estimating Probabilities with Bayesian Modeling in Python", "Python and Slack: A Natural Match", "Jupyter Notebook Extensions", "How to Write a Jupyter Notebook Extension", "Please Steal My Articles", "Introduction to Interactive Time Series Visualizations with Plotly in Python", "Stop Regretting the Present", "Docker for Data Science Without the Hassle", "On Blame", "What I learned in 2018", "Data Science for Virtual Energy Audits", "Virtual Building Energy Audits — Preliminary Report", "Building Energy Data Analysis Part Four", "Building Energy Data Analysis Part Three", "Building Energy Data Analysis Part Two", "Building Energy Data Analysis Part One", "Books of 2018 Notes", "Books of 2018", "The Copernican Principle and How to Use Statistics to Figure Out How Long Anything Will Last" ], "type": "scatter", "uid": "be0fcb32-0c0a-4ac1-a951-6b5a076a7bb6", "x": [ "2017-06-10 14:24:38.229000-05:00", "2017-06-17 22:02:29.514000-05:00", "2017-06-30 12:55:07.015000-05:00", "2017-07-01 09:08:27.810000-05:00", "2017-07-05 08:50:40.780000-05:00", "2017-07-19 21:09:19.991000-05:00", "2017-07-25 17:54:09.398000-05:00", "2017-07-27 21:16:38.171000-05:00", "2017-07-30 17:49:52.293000-05:00", "2017-08-01 14:21:14.245000-05:00", "2017-08-07 14:24:03.487000-05:00", "2017-08-08 12:57:30.033000-05:00", "2017-08-10 19:58:26.671000-05:00", "2017-08-12 15:16:43.850000-05:00", "2017-08-12 17:02:40.898000-05:00", "2017-08-15 14:02:22.727000-05:00", "2017-08-20 17:05:51.236000-05:00", "2017-08-22 15:09:24.523000-05:00", "2017-09-22 15:04:00.846000-05:00", "2017-12-16 10:19:48.505000-06:00", "2017-12-27 11:19:54.597000-06:00", "2017-12-27 11:22:13.792000-06:00", "2017-12-29 18:51:03.326000-06:00", "2018-01-01 13:44:53.220000-06:00", "2018-01-06 20:15:15.815000-06:00", "2018-01-07 20:37:01.865000-06:00", "2018-01-08 09:44:51.156000-06:00", "2018-01-08 16:58:05.653000-06:00", "2018-01-09 21:48:51.666000-06:00", "2018-01-12 20:47:30.044000-06:00", "2018-01-13 09:51:18.777000-06:00", "2018-01-17 15:23:48.532000-06:00", "2018-01-17 19:42:09.669000-06:00", "2018-01-18 08:54:41.265000-06:00", "2018-01-19 15:29:37.113000-06:00", "2018-01-19 20:16:01.692000-06:00", "2018-01-22 14:22:04.410000-06:00", "2018-01-24 18:26:41.819000-06:00", "2018-01-27 20:17:10.599000-06:00", "2018-01-28 08:40:28.564000-06:00", "2018-01-31 11:40:35.257000-06:00", "2018-02-02 09:25:58.366000-06:00", "2018-02-04 09:11:55.020000-06:00", "2018-02-07 09:08:36.448000-06:00", "2018-02-09 22:28:55.143000-06:00", "2018-02-11 18:57:06.487000-06:00", "2018-02-14 11:26:44.479000-06:00", "2018-02-20 12:49:20.672000-06:00", "2018-02-24 09:33:05.871000-06:00", "2018-03-03 11:09:30.139000-06:00", "2018-03-10 16:15:57.486000-06:00", "2018-03-17 10:29:27.211000-05:00", "2018-03-20 09:47:02.956000-05:00", "2018-03-23 12:44:01.468000-05:00", "2018-03-31 08:36:02.361000-05:00", "2018-04-06 14:11:35.487000-05:00", "2018-04-13 20:37:55.231000-05:00", "2018-04-20 13:30:33.995000-05:00", "2018-04-20 13:34:29.856000-05:00", "2018-04-28 15:27:28.247000-05:00", "2018-04-30 11:04:23.442000-05:00", "2018-05-16 12:32:52.129000-05:00", "2018-05-17 09:33:40.646000-05:00", "2018-05-18 09:48:13.204000-05:00", "2018-05-21 14:16:00.860000-05:00", "2018-05-28 11:38:57.593000-05:00", "2018-06-02 10:01:18.755000-05:00", "2018-06-19 20:35:06.452000-05:00", "2018-06-22 10:12:13.981000-05:00", "2018-06-24 08:25:59.216000-05:00", "2018-06-28 08:32:31.658000-05:00", "2018-07-03 11:04:09.072000-05:00", "2018-07-20 08:56:50.309000-05:00", "2018-07-26 09:35:15.216000-05:00", "2018-08-09 09:04:13.452000-05:00", "2018-08-11 05:53:02.842000-05:00", "2018-08-16 14:42:41.073000-05:00", "2018-08-18 19:48:56.471000-05:00", "2018-08-20 09:48:27.221000-05:00", "2018-08-20 09:51:16.392000-05:00", "2018-08-29 19:08:26.443000-05:00", "2018-08-30 12:44:23.571000-05:00", "2018-09-03 17:27:22.743000-05:00", "2018-09-10 09:26:18.875000-05:00", "2018-09-16 10:30:53.216000-05:00", "2018-09-16 17:55:25.072000-05:00", "2018-09-23 10:25:36.733000-05:00", "2018-09-26 13:41:25.015000-05:00", "2018-10-01 21:04:23.022000-05:00", "2018-10-04 13:10:09.202000-05:00", "2018-10-12 12:30:38.012000-05:00", "2018-10-17 10:25:35.481000-05:00", "2018-10-26 15:31:54.719000-05:00", "2018-11-01 20:43:46.908000-05:00", "2018-11-04 21:30:10.597000-06:00", "2018-11-07 10:14:16.997000-06:00", "2018-11-07 10:16:43.911000-06:00", "2018-11-12 09:00:03.878000-06:00", "2018-11-15 08:35:01.914000-06:00", "2018-11-17 21:54:10.735000-06:00", "2018-11-18 19:57:22.419000-06:00", "2018-11-26 13:24:33.425000-06:00", "2018-11-28 10:22:45.308000-06:00", "2018-12-01 11:50:13.266000-06:00", "2018-12-07 16:16:13.956000-06:00", "2018-12-08 14:40:34.072000-06:00", "2018-12-09 21:15:30.533000-06:00", "2018-12-15 12:39:06.787000-06:00", "2018-12-16 21:03:27.601000-06:00", "2018-12-17 20:03:31.462000-06:00", "2018-12-24 20:23:04.550000-06:00", "2018-12-25 15:27:50.815000-06:00", "2018-12-25 21:22:06.626000-06:00", "2018-12-25 21:23:58.293000-06:00", "2018-12-25 21:25:08.834000-06:00", "2018-12-25 21:25:47.241000-06:00", "2018-12-25 21:26:27.361000-06:00", "2018-12-25 21:27:02.135000-06:00", "2018-12-27 07:59:59.069000-06:00", "2018-12-27 12:30:46.878000-06:00", "2018-12-29 11:36:17.358000-06:00" ], "y": [ 161, 157, 1050, 52, 56, 303, 9283, 23030, 119, 61, 26873, 145, 53, 5244, 4650, 7877, 12578, 130, 2104, 35, 158972, 79934, 157, 310, 31166, 2674, 3247, 2324, 104533, 123542, 147, 76115, 4740, 105, 124650, 18868, 1547, 3974, 15621, 31759, 15040, 46506, 47442, 2939, 53387, 226, 33697, 4568, 12686, 114930, 58124, 51465, 27569, 104568, 51604, 44814, 54049, 20562, 23309, 66002, 2360, 119519, 44375, 25934, 32728, 41584, 108370, 10508, 75331, 23185, 29177, 41439, 5300, 3894, 23283, 16406, 3886, 24083, 42141, 6124, 1637, 12421, 14563, 23970, 3555, 1549, 23359, 2714, 25592, 6078, 12588, 2023, 32410, 3129, 29910, 4944, 6116, 5105, 7754, 26322, 14007, 7481, 20421, 21437, 21811, 4250, 809, 8378, 401, 4628, 250, 657, 193, 3, 104, 80, 6, 131, 24, 923, 564 ] } ], "layout": { "title": "Views vs Published Date", "xaxis": { "title": "Published Date" }, "yaxis": { "title": "Views (log scale)", "type": "log" } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df.iplot(x = 'published_date', y = 'views', mode='markers', \n", " text='title', layout=dict(yaxis=dict(type='log', \n", " title = 'Views (log scale)'),\n", " xaxis=dict(title='Published Date'),\n", " title='Views vs Published Date'))" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:57.284813Z", "start_time": "2018-12-30T19:13:57.152222Z" } }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": true }, "data": [ { "line": { "color": "rgba(226, 74, 51, 1.0)", "dash": "solid", "shape": "linear", "width": 1.3 }, "marker": { "size": 12, "symbol": "circle" }, "mode": "markers", "name": "word_count", "text": "", "type": "scatter", "uid": "b4fb74a3-7c1e-463b-8f1c-b482fda6b19d", "x": [ "2017-06-10 14:24:38.229000-05:00", "2017-06-17 22:02:29.514000-05:00", "2017-06-30 12:55:07.015000-05:00", "2017-07-01 09:08:27.810000-05:00", "2017-07-05 08:50:40.780000-05:00", "2017-07-19 21:09:19.991000-05:00", "2017-07-25 17:54:09.398000-05:00", "2017-07-27 21:16:38.171000-05:00", "2017-07-30 17:49:52.293000-05:00", "2017-08-01 14:21:14.245000-05:00", "2017-08-07 14:24:03.487000-05:00", "2017-08-08 12:57:30.033000-05:00", "2017-08-10 19:58:26.671000-05:00", "2017-08-12 15:16:43.850000-05:00", "2017-08-12 17:02:40.898000-05:00", "2017-08-15 14:02:22.727000-05:00", "2017-08-20 17:05:51.236000-05:00", "2017-08-22 15:09:24.523000-05:00", "2017-09-22 15:04:00.846000-05:00", "2017-12-16 10:19:48.505000-06:00", "2017-12-27 11:19:54.597000-06:00", "2017-12-27 11:22:13.792000-06:00", "2017-12-29 18:51:03.326000-06:00", "2018-01-01 13:44:53.220000-06:00", "2018-01-06 20:15:15.815000-06:00", "2018-01-07 20:37:01.865000-06:00", "2018-01-08 09:44:51.156000-06:00", "2018-01-08 16:58:05.653000-06:00", "2018-01-09 21:48:51.666000-06:00", "2018-01-12 20:47:30.044000-06:00", "2018-01-13 09:51:18.777000-06:00", "2018-01-17 15:23:48.532000-06:00", "2018-01-17 19:42:09.669000-06:00", "2018-01-18 08:54:41.265000-06:00", "2018-01-19 15:29:37.113000-06:00", "2018-01-19 20:16:01.692000-06:00", "2018-01-22 14:22:04.410000-06:00", "2018-01-24 18:26:41.819000-06:00", "2018-01-27 20:17:10.599000-06:00", "2018-01-28 08:40:28.564000-06:00", "2018-01-31 11:40:35.257000-06:00", "2018-02-02 09:25:58.366000-06:00", "2018-02-04 09:11:55.020000-06:00", "2018-02-07 09:08:36.448000-06:00", "2018-02-09 22:28:55.143000-06:00", "2018-02-11 18:57:06.487000-06:00", "2018-02-14 11:26:44.479000-06:00", "2018-02-20 12:49:20.672000-06:00", "2018-02-24 09:33:05.871000-06:00", "2018-03-03 11:09:30.139000-06:00", "2018-03-10 16:15:57.486000-06:00", "2018-03-17 10:29:27.211000-05:00", "2018-03-20 09:47:02.956000-05:00", "2018-03-23 12:44:01.468000-05:00", "2018-03-31 08:36:02.361000-05:00", "2018-04-06 14:11:35.487000-05:00", "2018-04-13 20:37:55.231000-05:00", "2018-04-20 13:30:33.995000-05:00", "2018-04-20 13:34:29.856000-05:00", "2018-04-28 15:27:28.247000-05:00", "2018-04-30 11:04:23.442000-05:00", "2018-05-16 12:32:52.129000-05:00", "2018-05-17 09:33:40.646000-05:00", "2018-05-18 09:48:13.204000-05:00", "2018-05-21 14:16:00.860000-05:00", "2018-05-28 11:38:57.593000-05:00", "2018-06-02 10:01:18.755000-05:00", "2018-06-19 20:35:06.452000-05:00", "2018-06-22 10:12:13.981000-05:00", "2018-06-24 08:25:59.216000-05:00", "2018-06-28 08:32:31.658000-05:00", "2018-07-03 11:04:09.072000-05:00", "2018-07-20 08:56:50.309000-05:00", "2018-07-26 09:35:15.216000-05:00", "2018-08-09 09:04:13.452000-05:00", "2018-08-11 05:53:02.842000-05:00", "2018-08-16 14:42:41.073000-05:00", "2018-08-18 19:48:56.471000-05:00", "2018-08-20 09:48:27.221000-05:00", "2018-08-20 09:51:16.392000-05:00", "2018-08-29 19:08:26.443000-05:00", "2018-08-30 12:44:23.571000-05:00", "2018-09-03 17:27:22.743000-05:00", "2018-09-10 09:26:18.875000-05:00", "2018-09-16 10:30:53.216000-05:00", "2018-09-16 17:55:25.072000-05:00", "2018-09-23 10:25:36.733000-05:00", "2018-09-26 13:41:25.015000-05:00", "2018-10-01 21:04:23.022000-05:00", "2018-10-04 13:10:09.202000-05:00", "2018-10-12 12:30:38.012000-05:00", "2018-10-17 10:25:35.481000-05:00", "2018-10-26 15:31:54.719000-05:00", "2018-11-01 20:43:46.908000-05:00", "2018-11-04 21:30:10.597000-06:00", "2018-11-07 10:14:16.997000-06:00", "2018-11-07 10:16:43.911000-06:00", "2018-11-12 09:00:03.878000-06:00", "2018-11-15 08:35:01.914000-06:00", "2018-11-17 21:54:10.735000-06:00", "2018-11-18 19:57:22.419000-06:00", "2018-11-26 13:24:33.425000-06:00", "2018-11-28 10:22:45.308000-06:00", "2018-12-01 11:50:13.266000-06:00", "2018-12-07 16:16:13.956000-06:00", "2018-12-08 14:40:34.072000-06:00", "2018-12-09 21:15:30.533000-06:00", "2018-12-15 12:39:06.787000-06:00", "2018-12-17 20:03:31.462000-06:00", "2018-12-25 15:27:50.815000-06:00", "2018-12-27 12:30:46.878000-06:00", "2018-12-29 11:36:17.358000-06:00" ], "y": [ 1859, 3891, 12025, 2533, 3892, 13048, 1778, 2345, 1895, 4684, 6666, 7659, 3341, 5508, 4772, 1214, 6800, 1412, 3904, 2264, 4494, 2850, 2509, 5160, 3504, 3569, 1073, 2817, 2456, 2974, 1314, 2395, 1169, 1557, 2528, 1361, 1653, 1014, 1562, 2480, 1281, 2450, 721, 1375, 2772, 634, 1944, 1827, 933, 2565, 1906, 2394, 2220, 2614, 2365, 1577, 2394, 2690, 2620, 1480, 765, 3553, 3106, 2622, 2338, 2975, 2648, 5228, 1998, 3393, 1957, 4298, 3718, 1247, 2634, 2041, 2343, 373, 3996, 3834, 163, 4042, 2658, 3756, 1172, 1580, 3756, 2087, 1809, 2999, 2483, 2172, 2933, 1346, 3797, 1979, 1286, 1741, 2230, 1561, 1355, 3398, 2824, 1397, 877, 1310, 1410, 1806, 1075, 2185, 7125, 1898 ] } ], "layout": { "legend": { "bgcolor": "#FFFFFF", "font": { "color": "#666666" } }, "paper_bgcolor": "#FFFFFF", "plot_bgcolor": "#E5E5E5", "titlefont": { "color": "#151516" }, "xaxis": { "gridcolor": "#F6F6F6", "showgrid": true, "tickfont": { "color": "#666666" }, "title": "", "titlefont": { "color": "#666666" }, "zerolinecolor": "#F6F6F6" }, "yaxis": { "gridcolor": "#F6F6F6", "showgrid": true, "tickfont": { "color": "#666666" }, "title": "", "titlefont": { "color": "#666666" }, "zerolinecolor": "#F6F6F6" } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df[df['type'] == 'published'].iplot(x = 'published_date', y = 'word_count', mode='markers');" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:57.508423Z", "start_time": "2018-12-30T19:13:57.286729Z" } }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": true }, "data": [ { "marker": { "color": "rgba(226, 74, 51, 1.0)", "line": { "width": 1.3 }, "opacity": 0.8, "size": 12, "symbol": "circle" }, "mode": "markers", "name": "published", "textfont": { "color": "#666666" }, "type": "scatter", "uid": "b3aeed2d-183a-4344-87ee-9a281796c677", "x": [ 0.00013686342592592594, 0.00033578703703703705, 0.03816039351851852, 0.6164853125, 1.5224345949074076, 0.0851078125, 1.2658201736111112, 1.0190222222222223, 0.3634774074074074, 16.762090289351853, -13.034827337962964, -0.0031568402777777784, 1.5417627777777778, 0.11076126157407408, 0.05278362268518519, 0.721846087962963, 0.07514296296296297, 0.04734789351851852, 0.06323819444444445, 70.21814247685187, 0.8393796990740741, 6.662462303240741, 2.002826203703704, 4.789699861111111, 2.942347118055556, 0.30513957175925926, 0.542535300925926, 5.982899849537037, 0.3911272800925926, 1.5017016666666667, 0.07436179398148149, 0.19550653935185183, 0.059555972222222225, 0.06844539351851853, 5.876935300925926, 0.18709101851851853, 10.72027101851852, 0.9435467939814814, 1.0799120370370372, 1.5062245833333334, 0.16989356481481482, 2.5335116550925925, 0.05760177083333334, 7.521112453703704, 0.6328281481481483, 1.4461132870370372, 0.6812593981481482, 1.2101670023148148, 1.538078912037037, 3.8594648726851855, 0.16226043981481483, 0.9096273611111112, 1.8925094212962965, 0.6409916898148148, 0.9606450925925927, 2.7539970949074077, 1.4446409490740741, 17.731662743055555, 9.105731284722223, 0.10086562500000001, 0.6511788194444446, 8.954832291666667, 0.8160681018518519, 1.008210324074074, 3.0886693981481486, 3.7277022916666667, 1.1322710879629632, 26.09921980324074, 0.7469730671296297, 0.8963596412037037, 0.6889808101851852, 10.66455761574074, 9.542422650462964, 0.10661085648148148, 12.911633854166666, 11.392080682870372, 9.975229780092592, 0.03320025462962963, 21.90822570601852, 0.026584351851851852, 0.43628284722222227, 0.6968928356481482, 8.083771666666667, 2.7727853009259262, 1.2106303472222222, 0.2948339930555556, 2.598375787037037, 5.97260244212963, 1.0499642824074074, 5.338199189814815, 1.8400799189814814, 1.1435136226851852, 10.804943877314816, 0.9825340046296297, 21.58783954861111, 1.7732069560185186, 1.7915407407407407, 4.942748831018519, 7.8870652199074085, 3.0712562500000002, 0.11845116898148149, 2.817408078703704, 1.7777973958333335, 0.6065380671296297, 14.850819016203705, 15.784122881944446, 0.08701903935185186, 0.19919303240740743, 0.47272067129629636, 2.0301000694444444, 1.8764517129629632, 0.9964747222222223 ], "y": [ 1859, 3891, 12025, 2533, 3892, 13048, 1778, 2345, 1895, 4684, 6666, 7659, 3341, 5508, 4772, 1214, 6800, 1412, 3904, 2264, 4494, 2850, 2509, 5160, 3504, 3569, 1073, 2817, 2456, 2974, 1314, 2395, 1169, 1557, 2528, 1361, 1653, 1014, 1562, 2480, 1281, 2450, 721, 1375, 2772, 634, 1944, 1827, 933, 2565, 1906, 2394, 2220, 2614, 2365, 1577, 2394, 2690, 2620, 1480, 765, 3553, 3106, 2622, 2338, 2975, 2648, 5228, 1998, 3393, 1957, 4298, 3718, 1247, 2634, 2041, 2343, 373, 3996, 3834, 163, 4042, 2658, 3756, 1172, 1580, 3756, 2087, 1809, 2999, 2483, 2172, 2933, 1346, 3797, 1979, 1286, 1741, 2230, 1561, 1355, 3398, 2824, 1397, 877, 1310, 1410, 1806, 1075, 2185, 7125, 1898 ] }, { "marker": { "color": "rgba(62, 111, 176, 1.0)", "line": { "width": 1.3 }, "opacity": 0.8, "size": 12, "symbol": "circle" }, "mode": "markers", "name": "unlisted", "textfont": { "color": "#666666" }, "type": "scatter", "uid": "60aac01b-3ea4-40ac-97b1-cca85ca6dfa3", "x": [ 0.09375503472222223, 0.20608988425925928, 349.5465040277778, 349.5432173726852, 349.5475984606482, 349.5465228009259, 349.54624295138893, 349.546117337963, 200.06914814814817 ], "y": [ 2128, 1918, 15063, 3659, 9698, 8507, 4145, 3068, 12083 ] } ], "layout": { "legend": { "bgcolor": "#FFFFFF", "font": { "color": "#666666" } }, "paper_bgcolor": "#FFFFFF", "plot_bgcolor": "#E5E5E5", "titlefont": { "color": "#151516" }, "xaxis": { "gridcolor": "#F6F6F6", "showgrid": true, "tickfont": { "color": "#666666" }, "title": "", "titlefont": { "color": "#666666" }, "zerolinecolor": "#F6F6F6" }, "yaxis": { "gridcolor": "#F6F6F6", "showgrid": true, "tickfont": { "color": "#666666" }, "title": "", "titlefont": { "color": "#666666" }, "zerolinecolor": "#F6F6F6" } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df.iplot(x = 'edit_days', y = 'word_count', mode='markers', categories='type')" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:57.541233Z", "start_time": "2018-12-30T19:13:57.511015Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
clapsfansnum_responsespublicationpublished_dateratioread_timereadsstarted_datetagstexttitletypeviewsword_countclaps_per_wordedit_days<tag>Education<tag>Data Science<tag>Towards Data Science<tag>Machine Learning<tag>Python
117681704None2017-08-07 14:24:03.487000-05:0014.0996543837892017-08-20 15:14:12.569000-05:00[Machine Learning, Python, Neural Networks, Fa...Facial Recognition Using Google’s Convolutiona...Facial Recognition Using Google’s Convolutiona...published2687366660.102160-13.03482700011
106550None2017-08-08 12:57:30.033000-05:0018.62069031272017-08-08 13:02:02.784000-05:00[Data Science, R Programming, Udacity, Data An...Exploratory Data Analysis with R (No Code) Exa...Exploratory Data Analysis with R (No Code)published14576590.000653-0.00315701000
\n", "
" ], "text/plain": [ " claps fans num_responses publication published_date \\\n", "117 681 70 4 None 2017-08-07 14:24:03.487000-05:00 \n", "106 5 5 0 None 2017-08-08 12:57:30.033000-05:00 \n", "\n", " ratio read_time reads started_date \\\n", "117 14.099654 38 3789 2017-08-20 15:14:12.569000-05:00 \n", "106 18.620690 31 27 2017-08-08 13:02:02.784000-05:00 \n", "\n", " tags \\\n", "117 [Machine Learning, Python, Neural Networks, Fa... \n", "106 [Data Science, R Programming, Udacity, Data An... \n", "\n", " text \\\n", "117 Facial Recognition Using Google’s Convolutiona... \n", "106 Exploratory Data Analysis with R (No Code) Exa... \n", "\n", " title type views \\\n", "117 Facial Recognition Using Google’s Convolutiona... published 26873 \n", "106 Exploratory Data Analysis with R (No Code) published 145 \n", "\n", " word_count claps_per_word edit_days Education Data Science \\\n", "117 6666 0.102160 -13.034827 0 0 \n", "106 7659 0.000653 -0.003157 0 1 \n", "\n", " Towards Data Science Machine Learning Python \n", "117 0 1 1 \n", "106 0 0 0 " ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[df['edit_days'] < 0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I am not sure what is going on here. These two articles appear to have negative editing days." ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:57.728723Z", "start_time": "2018-12-30T19:13:57.543001Z" } }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": true }, "data": [ { "line": { "color": "rgba(226, 74, 51, 1.0)", "dash": "solid", "shape": "linear", "width": 1.3 }, "marker": { "size": 12, "symbol": "circle" }, "mode": "markers", "name": "claps", "text": "", "type": "scatter", "uid": "24292026-49de-4d89-a29f-8c0a4f2dbc4a", "x": [ "2017-06-10 14:24:38.229000-05:00", "2017-06-17 22:02:29.514000-05:00", "2017-06-30 12:55:07.015000-05:00", "2017-07-01 09:08:27.810000-05:00", "2017-07-05 08:50:40.780000-05:00", "2017-07-19 21:09:19.991000-05:00", "2017-07-25 17:54:09.398000-05:00", "2017-07-27 21:16:38.171000-05:00", "2017-07-30 17:49:52.293000-05:00", "2017-08-01 14:21:14.245000-05:00", "2017-08-07 14:24:03.487000-05:00", "2017-08-08 12:57:30.033000-05:00", "2017-08-10 19:58:26.671000-05:00", "2017-08-12 15:16:43.850000-05:00", "2017-08-12 17:02:40.898000-05:00", "2017-08-15 14:02:22.727000-05:00", "2017-08-20 17:05:51.236000-05:00", "2017-08-22 15:09:24.523000-05:00", "2017-09-22 15:04:00.846000-05:00", "2017-12-16 10:19:48.505000-06:00", "2017-12-27 11:19:54.597000-06:00", "2017-12-27 11:22:13.792000-06:00", "2017-12-29 18:51:03.326000-06:00", "2018-01-01 13:44:53.220000-06:00", "2018-01-06 20:15:15.815000-06:00", "2018-01-07 20:37:01.865000-06:00", "2018-01-08 09:44:51.156000-06:00", "2018-01-08 16:58:05.653000-06:00", "2018-01-09 21:48:51.666000-06:00", "2018-01-12 20:47:30.044000-06:00", "2018-01-13 09:51:18.777000-06:00", "2018-01-17 15:23:48.532000-06:00", "2018-01-17 19:42:09.669000-06:00", "2018-01-18 08:54:41.265000-06:00", "2018-01-19 15:29:37.113000-06:00", "2018-01-19 20:16:01.692000-06:00", "2018-01-22 14:22:04.410000-06:00", "2018-01-24 18:26:41.819000-06:00", "2018-01-27 20:17:10.599000-06:00", "2018-01-28 08:40:28.564000-06:00", "2018-01-31 11:40:35.257000-06:00", "2018-02-02 09:25:58.366000-06:00", "2018-02-04 09:11:55.020000-06:00", "2018-02-07 09:08:36.448000-06:00", "2018-02-09 22:28:55.143000-06:00", "2018-02-11 18:57:06.487000-06:00", "2018-02-14 11:26:44.479000-06:00", "2018-02-20 12:49:20.672000-06:00", "2018-02-24 09:33:05.871000-06:00", "2018-03-03 11:09:30.139000-06:00", "2018-03-10 16:15:57.486000-06:00", "2018-03-17 10:29:27.211000-05:00", "2018-03-20 09:47:02.956000-05:00", "2018-03-23 12:44:01.468000-05:00", "2018-03-31 08:36:02.361000-05:00", "2018-04-06 14:11:35.487000-05:00", "2018-04-13 20:37:55.231000-05:00", "2018-04-20 13:30:33.995000-05:00", "2018-04-20 13:34:29.856000-05:00", "2018-04-28 15:27:28.247000-05:00", "2018-04-30 11:04:23.442000-05:00", "2018-05-16 12:32:52.129000-05:00", "2018-05-17 09:33:40.646000-05:00", "2018-05-18 09:48:13.204000-05:00", "2018-05-21 14:16:00.860000-05:00", "2018-05-28 11:38:57.593000-05:00", "2018-06-02 10:01:18.755000-05:00", "2018-06-19 20:35:06.452000-05:00", "2018-06-22 10:12:13.981000-05:00", "2018-06-24 08:25:59.216000-05:00", "2018-06-28 08:32:31.658000-05:00", "2018-07-03 11:04:09.072000-05:00", "2018-07-20 08:56:50.309000-05:00", "2018-07-26 09:35:15.216000-05:00", "2018-08-09 09:04:13.452000-05:00", "2018-08-11 05:53:02.842000-05:00", "2018-08-16 14:42:41.073000-05:00", "2018-08-18 19:48:56.471000-05:00", "2018-08-20 09:48:27.221000-05:00", "2018-08-20 09:51:16.392000-05:00", "2018-08-29 19:08:26.443000-05:00", "2018-08-30 12:44:23.571000-05:00", "2018-09-03 17:27:22.743000-05:00", "2018-09-10 09:26:18.875000-05:00", "2018-09-16 10:30:53.216000-05:00", "2018-09-16 17:55:25.072000-05:00", "2018-09-23 10:25:36.733000-05:00", "2018-09-26 13:41:25.015000-05:00", "2018-10-01 21:04:23.022000-05:00", "2018-10-04 13:10:09.202000-05:00", "2018-10-12 12:30:38.012000-05:00", "2018-10-17 10:25:35.481000-05:00", "2018-10-26 15:31:54.719000-05:00", "2018-11-01 20:43:46.908000-05:00", "2018-11-04 21:30:10.597000-06:00", "2018-11-07 10:14:16.997000-06:00", "2018-11-07 10:16:43.911000-06:00", "2018-11-12 09:00:03.878000-06:00", "2018-11-15 08:35:01.914000-06:00", "2018-11-17 21:54:10.735000-06:00", "2018-11-18 19:57:22.419000-06:00", "2018-11-26 13:24:33.425000-06:00", "2018-11-28 10:22:45.308000-06:00", "2018-12-01 11:50:13.266000-06:00", "2018-12-07 16:16:13.956000-06:00", "2018-12-08 14:40:34.072000-06:00", "2018-12-09 21:15:30.533000-06:00", "2018-12-15 12:39:06.787000-06:00", "2018-12-17 20:03:31.462000-06:00", "2018-12-25 15:27:50.815000-06:00", "2018-12-27 12:30:46.878000-06:00", "2018-12-29 11:36:17.358000-06:00" ], "y": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 4700, 2600, 72, 123, 856, 186, 11, 119, 2000, 4100, 59, 2700, 77, 14, 6900, 1200, 275, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 101, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 304, 2500, 917, 2000, 976, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 704, 800, 477, 334, 352, 123 ] } ], "layout": { "legend": { "bgcolor": "#FFFFFF", "font": { "color": "#666666" } }, "paper_bgcolor": "#FFFFFF", "plot_bgcolor": "#E5E5E5", "title": "Number of Claps over Time", "titlefont": { "color": "#151516" }, "xaxis": { "gridcolor": "#F6F6F6", "showgrid": true, "tickfont": { "color": "#666666" }, "title": "Date", "titlefont": { "color": "#666666" }, "zerolinecolor": "#F6F6F6" }, "yaxis": { "gridcolor": "#F6F6F6", "showgrid": true, "tickfont": { "color": "#666666" }, "title": "Number of Claps", "titlefont": { "color": "#666666" }, "zerolinecolor": "#F6F6F6" } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df[df['type'] == 'published'].iplot(x = 'published_date', y = 'claps',\n", " mode = 'markers', xTitle='Date', yTitle='Number of Claps',\n", " title = 'Number of Claps over Time')" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:57.818892Z", "start_time": "2018-12-30T19:13:57.730146Z" } }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": true }, "data": [ { "line": { "color": "rgba(226, 74, 51, 1.0)", "dash": "solid", "shape": "linear", "width": 1.3 }, "marker": { "size": 12, "symbol": "circle" }, "mode": "markers", "name": "views", "text": "", "type": "scatter", "uid": "c41a52ef-e111-4c11-bf0d-372d68a6afab", "x": [ "2017-06-10 14:24:38.229000-05:00", "2017-06-17 22:02:29.514000-05:00", "2017-06-30 12:55:07.015000-05:00", "2017-07-01 09:08:27.810000-05:00", "2017-07-05 08:50:40.780000-05:00", "2017-07-19 21:09:19.991000-05:00", "2017-07-25 17:54:09.398000-05:00", "2017-07-27 21:16:38.171000-05:00", "2017-07-30 17:49:52.293000-05:00", "2017-08-01 14:21:14.245000-05:00", "2017-08-07 14:24:03.487000-05:00", "2017-08-08 12:57:30.033000-05:00", "2017-08-10 19:58:26.671000-05:00", "2017-08-12 15:16:43.850000-05:00", "2017-08-12 17:02:40.898000-05:00", "2017-08-15 14:02:22.727000-05:00", "2017-08-20 17:05:51.236000-05:00", "2017-08-22 15:09:24.523000-05:00", "2017-09-22 15:04:00.846000-05:00", "2017-12-16 10:19:48.505000-06:00", "2017-12-27 11:19:54.597000-06:00", "2017-12-27 11:22:13.792000-06:00", "2017-12-29 18:51:03.326000-06:00", "2018-01-01 13:44:53.220000-06:00", "2018-01-06 20:15:15.815000-06:00", "2018-01-07 20:37:01.865000-06:00", "2018-01-08 09:44:51.156000-06:00", "2018-01-08 16:58:05.653000-06:00", "2018-01-09 21:48:51.666000-06:00", "2018-01-12 20:47:30.044000-06:00", "2018-01-13 09:51:18.777000-06:00", "2018-01-17 15:23:48.532000-06:00", "2018-01-17 19:42:09.669000-06:00", "2018-01-18 08:54:41.265000-06:00", "2018-01-19 15:29:37.113000-06:00", "2018-01-19 20:16:01.692000-06:00", "2018-01-22 14:22:04.410000-06:00", "2018-01-24 18:26:41.819000-06:00", "2018-01-27 20:17:10.599000-06:00", "2018-01-28 08:40:28.564000-06:00", "2018-01-31 11:40:35.257000-06:00", "2018-02-02 09:25:58.366000-06:00", "2018-02-04 09:11:55.020000-06:00", "2018-02-07 09:08:36.448000-06:00", "2018-02-09 22:28:55.143000-06:00", "2018-02-11 18:57:06.487000-06:00", "2018-02-14 11:26:44.479000-06:00", "2018-02-20 12:49:20.672000-06:00", "2018-02-24 09:33:05.871000-06:00", "2018-03-03 11:09:30.139000-06:00", "2018-03-10 16:15:57.486000-06:00", "2018-03-17 10:29:27.211000-05:00", "2018-03-20 09:47:02.956000-05:00", "2018-03-23 12:44:01.468000-05:00", "2018-03-31 08:36:02.361000-05:00", "2018-04-06 14:11:35.487000-05:00", "2018-04-13 20:37:55.231000-05:00", "2018-04-20 13:30:33.995000-05:00", "2018-04-20 13:34:29.856000-05:00", "2018-04-28 15:27:28.247000-05:00", "2018-04-30 11:04:23.442000-05:00", "2018-05-16 12:32:52.129000-05:00", "2018-05-17 09:33:40.646000-05:00", "2018-05-18 09:48:13.204000-05:00", "2018-05-21 14:16:00.860000-05:00", "2018-05-28 11:38:57.593000-05:00", "2018-06-02 10:01:18.755000-05:00", "2018-06-19 20:35:06.452000-05:00", "2018-06-22 10:12:13.981000-05:00", "2018-06-24 08:25:59.216000-05:00", "2018-06-28 08:32:31.658000-05:00", "2018-07-03 11:04:09.072000-05:00", "2018-07-20 08:56:50.309000-05:00", "2018-07-26 09:35:15.216000-05:00", "2018-08-09 09:04:13.452000-05:00", "2018-08-11 05:53:02.842000-05:00", "2018-08-16 14:42:41.073000-05:00", "2018-08-18 19:48:56.471000-05:00", "2018-08-20 09:48:27.221000-05:00", "2018-08-20 09:51:16.392000-05:00", "2018-08-29 19:08:26.443000-05:00", "2018-08-30 12:44:23.571000-05:00", "2018-09-03 17:27:22.743000-05:00", "2018-09-10 09:26:18.875000-05:00", "2018-09-16 10:30:53.216000-05:00", "2018-09-16 17:55:25.072000-05:00", "2018-09-23 10:25:36.733000-05:00", "2018-09-26 13:41:25.015000-05:00", "2018-10-01 21:04:23.022000-05:00", "2018-10-04 13:10:09.202000-05:00", "2018-10-12 12:30:38.012000-05:00", "2018-10-17 10:25:35.481000-05:00", "2018-10-26 15:31:54.719000-05:00", "2018-11-01 20:43:46.908000-05:00", "2018-11-04 21:30:10.597000-06:00", "2018-11-07 10:14:16.997000-06:00", "2018-11-07 10:16:43.911000-06:00", "2018-11-12 09:00:03.878000-06:00", "2018-11-15 08:35:01.914000-06:00", "2018-11-17 21:54:10.735000-06:00", "2018-11-18 19:57:22.419000-06:00", "2018-11-26 13:24:33.425000-06:00", "2018-11-28 10:22:45.308000-06:00", "2018-12-01 11:50:13.266000-06:00", "2018-12-07 16:16:13.956000-06:00", "2018-12-08 14:40:34.072000-06:00", "2018-12-09 21:15:30.533000-06:00", "2018-12-15 12:39:06.787000-06:00", "2018-12-17 20:03:31.462000-06:00", "2018-12-25 15:27:50.815000-06:00", "2018-12-27 12:30:46.878000-06:00", "2018-12-29 11:36:17.358000-06:00" ], "y": [ 161, 157, 1050, 52, 56, 303, 9283, 23030, 119, 61, 26873, 145, 53, 5244, 4650, 7877, 12578, 130, 2104, 35, 158972, 79934, 157, 310, 31166, 2674, 3247, 2324, 104533, 123542, 147, 76115, 4740, 105, 124650, 18868, 1547, 3974, 15621, 31759, 15040, 46506, 47442, 2939, 53387, 226, 33697, 4568, 12686, 114930, 58124, 51465, 27569, 104568, 51604, 44814, 54049, 20562, 23309, 66002, 2360, 119519, 44375, 25934, 32728, 41584, 108370, 10508, 75331, 23185, 29177, 41439, 5300, 3894, 23283, 16406, 3886, 24083, 42141, 6124, 1637, 12421, 14563, 23970, 3555, 1549, 23359, 2714, 25592, 6078, 12588, 2023, 32410, 3129, 29910, 4944, 6116, 5105, 7754, 26322, 14007, 7481, 20421, 21437, 21811, 4250, 809, 8378, 4628, 657, 923, 564 ] } ], "layout": { "legend": { "bgcolor": "#FFFFFF", "font": { "color": "#666666" } }, "paper_bgcolor": "#FFFFFF", "plot_bgcolor": "#E5E5E5", "title": "Number of Views over Time", "titlefont": { "color": "#151516" }, "xaxis": { "gridcolor": "#F6F6F6", "showgrid": true, "tickfont": { "color": "#666666" }, "title": "Date", "titlefont": { "color": "#666666" }, "zerolinecolor": "#F6F6F6" }, "yaxis": { "gridcolor": "#F6F6F6", "showgrid": true, "tickfont": { "color": "#666666" }, "title": "Number of Views", "titlefont": { "color": "#666666" }, "zerolinecolor": "#F6F6F6" } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df[df['type'] == 'published'].iplot(x = 'published_date', y = 'views',\n", " mode = 'markers', xTitle='Date', yTitle='Number of Views',\n", " title = 'Number of Views over Time')" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "ExecuteTime": { "end_time": "2018-12-30T19:13:58.768211Z", "start_time": "2018-12-30T19:13:57.820161Z" } }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": true }, "data": [ { "marker": { "color": "rgb(31, 119, 180)" }, "showlegend": false, "type": "histogram", "uid": "307dffaa-f370-4419-ba84-c3726a22c71b", "x": [ 9 ], "xaxis": "x", "yaxis": "y" }, { "marker": { "color": "rgb(255, 127, 14)" }, "showlegend": false, "type": "histogram", "uid": "7d3dd7cb-4dc9-45de-a9d7-0459bf0c0d30", "x": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 11, 9, 19, 5, 6, 6, 7, 3, 6, 8, 8, 8, 54, 13, 35, 43, 24, 14, 43, 27 ], "xaxis": "x", "yaxis": "y" }, { "marker": { "color": "rgb(44, 160, 44)" }, "showlegend": false, "type": "histogram", "uid": "11e0aa46-0e6e-40a4-a596-e2e341ff5e24", "x": [ 9 ], "xaxis": "x", "yaxis": "y" }, { "marker": { "color": "rgb(214, 39, 40)" }, "showlegend": false, "type": "histogram", "uid": "e8851804-2403-405d-8e16-bbb66da5f727", "x": [ 21, 17, 15, 11, 12, 14, 11, 5, 12, 6, 4, 6, 11, 6, 10, 3, 6, 12, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 8, 13, 10, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 9, 5, 8 ], "xaxis": "x", "yaxis": "y" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": true, "type": "scatter", "uid": "bb6a20f9-6a43-4582-90bc-1270942ee4c6", "x": [ 304 ], "xaxis": "x2", "y": [ 9 ], "yaxis": "y2" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": true, "type": "scatter", "uid": "efc8c65b-7a1a-4831-a95c-2921446fa2ef", "x": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 2600, 72, 123, 11, 59, 14, 275, 101, 704, 204, 120, 334, 26, 0, 24, 5, 0, 6, 0, 352 ], "xaxis": "x2", "y": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 11, 9, 19, 5, 6, 6, 7, 3, 6, 8, 8, 8, 54, 13, 35, 43, 24, 14, 43, 27 ], "yaxis": "y2" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": true, "type": "scatter", "uid": "74a3e13b-1c49-4976-8be9-369baeba1b51", "x": [ 976 ], "xaxis": "x2", "y": [ 9 ], "yaxis": "y2" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": true, "type": "scatter", "uid": "faf737b1-ff3a-4c4d-ad58-a0baf659935d", "x": [ 4700, 856, 186, 119, 2000, 4100, 2700, 77, 6900, 1200, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 2500, 917, 2000, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 800, 477, 123 ], "xaxis": "x2", "y": [ 21, 17, 15, 11, 12, 14, 11, 5, 12, 6, 4, 6, 11, 6, 10, 3, 6, 12, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 8, 13, 10, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 9, 5, 8 ], "yaxis": "y2" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "5f107779-3d14-4c2f-9204-583e98dd1ae6", "x": [ 2087 ], "xaxis": "x3", "y": [ 9 ], "yaxis": "y3" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "b75ea0d4-a4fa-456b-9ce0-f1abe2f1f523", "x": [ 1859, 3891, 12025, 2533, 3892, 13048, 1778, 2345, 1895, 4684, 6666, 7659, 3341, 5508, 4772, 1214, 6800, 1412, 3904, 2264, 2850, 2509, 5160, 1073, 1314, 1557, 1653, 634, 1410, 2128, 1918, 2185, 15063, 3659, 9698, 8507, 4145, 3068, 12083, 7125 ], "xaxis": "x3", "y": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 11, 9, 19, 5, 6, 6, 7, 3, 6, 8, 8, 8, 54, 13, 35, 43, 24, 14, 43, 27 ], "yaxis": "y3" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "7d87fad8-d725-4ede-8360-f1cb731ece4a", "x": [ 2172 ], "xaxis": "x3", "y": [ 9 ], "yaxis": "y3" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "db6a8cb1-0b43-46f9-9691-f73f6efaeec4", "x": [ 4494, 3504, 3569, 2817, 2456, 2974, 2395, 1169, 2528, 1361, 1014, 1562, 2480, 1281, 2450, 721, 1375, 2772, 1944, 1827, 933, 2565, 1906, 2394, 2220, 2614, 2365, 1577, 2394, 2690, 2620, 1480, 765, 3553, 3106, 2622, 2338, 2975, 2648, 5228, 1998, 3393, 1957, 4298, 3718, 1247, 2634, 2041, 2343, 373, 3996, 3834, 163, 4042, 2658, 3756, 1172, 1580, 3756, 1809, 2999, 2483, 2933, 1346, 3797, 1979, 1286, 1741, 2230, 1561, 1355, 3398, 2824, 1397, 877, 1310, 1806, 1075, 1898 ], "xaxis": "x3", "y": [ 21, 17, 15, 11, 12, 14, 11, 5, 12, 6, 4, 6, 11, 6, 10, 3, 6, 12, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 8, 13, 10, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 9, 5, 8 ], "yaxis": "y3" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "7291a854-3b12-454c-a3cb-5b105bef5628", "x": [ 1 ], "xaxis": "x4", "y": [ 9 ], "yaxis": "y4" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "8fc6a830-8850-4748-9283-8b80ddb00e2b", "x": [ 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 4, 0, 0, 3, 0, 1, 1, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 1, 11, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3 ], "xaxis": "x4", "y": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 11, 9, 19, 5, 6, 6, 7, 3, 6, 8, 8, 8, 54, 13, 35, 43, 24, 14, 43, 27 ], "yaxis": "y4" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "6aaa610b-2375-4c80-85d5-6e8d093f7907", "x": [ 4 ], "xaxis": "x4", "y": [ 9 ], "yaxis": "y4" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "2e627568-e3d0-41ba-a928-e38fb8a7dae8", "x": [ 27, 5, 1, 2, 12, 15, 16, 1, 18, 4, 16, 3, 6, 17, 27, 57, 0, 20, 17, 3, 6, 28, 28, 13, 6, 11, 15, 6, 15, 6, 6, 21, 4, 25, 10, 12, 12, 12, 21, 4, 21, 8, 11, 6, 3, 2, 16, 16, 0, 3, 12, 4, 1, 4, 10, 4, 3, 0, 5, 5, 0, 8, 16, 10, 5, 0, 0, 0, 1, 5, 6, 4, 9, 6, 15, 2, 4, 2, 2 ], "xaxis": "x4", "y": [ 21, 17, 15, 11, 12, 14, 11, 5, 12, 6, 4, 6, 11, 6, 10, 3, 6, 12, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 8, 13, 10, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 9, 5, 8 ], "yaxis": "y4" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "e9c20afc-4222-44e4-9a42-bcbe1653c468", "x": [ 5.97260244212963 ], "xaxis": "x5", "y": [ 9 ], "yaxis": "y5" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "c7ddae34-0bd7-4d21-9210-f4bbb8503786", "x": [ 0.00013686342592592594, 0.00033578703703703705, 0.03816039351851852, 0.6164853125, 1.5224345949074076, 0.0851078125, 1.2658201736111112, 1.0190222222222223, 0.3634774074074074, 16.762090289351853, -13.034827337962964, -0.0031568402777777784, 1.5417627777777778, 0.11076126157407408, 0.05278362268518519, 0.721846087962963, 0.07514296296296297, 0.04734789351851852, 0.06323819444444445, 70.21814247685187, 6.662462303240741, 2.002826203703704, 4.789699861111111, 0.542535300925926, 0.07436179398148149, 0.06844539351851853, 10.72027101851852, 1.4461132870370372, 0.08701903935185186, 0.09375503472222223, 0.20608988425925928, 2.0301000694444444, 349.5465040277778, 349.5432173726852, 349.5475984606482, 349.5465228009259, 349.54624295138893, 349.546117337963, 200.06914814814817, 1.8764517129629632 ], "xaxis": "x5", "y": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 11, 9, 19, 5, 6, 6, 7, 3, 6, 8, 8, 8, 54, 13, 35, 43, 24, 14, 43, 27 ], "yaxis": "y5" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "ae2dab87-649e-4019-b8fe-3c3f148d01c9", "x": [ 1.1435136226851852 ], "xaxis": "x5", "y": [ 9 ], "yaxis": "y5" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "facfd31a-c264-4c54-9369-e44791d47815", "x": [ 0.8393796990740741, 2.942347118055556, 0.30513957175925926, 5.982899849537037, 0.3911272800925926, 1.5017016666666667, 0.19550653935185183, 0.059555972222222225, 5.876935300925926, 0.18709101851851853, 0.9435467939814814, 1.0799120370370372, 1.5062245833333334, 0.16989356481481482, 2.5335116550925925, 0.05760177083333334, 7.521112453703704, 0.6328281481481483, 0.6812593981481482, 1.2101670023148148, 1.538078912037037, 3.8594648726851855, 0.16226043981481483, 0.9096273611111112, 1.8925094212962965, 0.6409916898148148, 0.9606450925925927, 2.7539970949074077, 1.4446409490740741, 17.731662743055555, 9.105731284722223, 0.10086562500000001, 0.6511788194444446, 8.954832291666667, 0.8160681018518519, 1.008210324074074, 3.0886693981481486, 3.7277022916666667, 1.1322710879629632, 26.09921980324074, 0.7469730671296297, 0.8963596412037037, 0.6889808101851852, 10.66455761574074, 9.542422650462964, 0.10661085648148148, 12.911633854166666, 11.392080682870372, 9.975229780092592, 0.03320025462962963, 21.90822570601852, 0.026584351851851852, 0.43628284722222227, 0.6968928356481482, 8.083771666666667, 2.7727853009259262, 1.2106303472222222, 0.2948339930555556, 2.598375787037037, 1.0499642824074074, 5.338199189814815, 1.8400799189814814, 10.804943877314816, 0.9825340046296297, 21.58783954861111, 1.7732069560185186, 1.7915407407407407, 4.942748831018519, 7.8870652199074085, 3.0712562500000002, 0.11845116898148149, 2.817408078703704, 1.7777973958333335, 0.6065380671296297, 14.850819016203705, 15.784122881944446, 0.19919303240740743, 0.47272067129629636, 0.9964747222222223 ], "xaxis": "x5", "y": [ 21, 17, 15, 11, 12, 14, 11, 5, 12, 6, 4, 6, 11, 6, 10, 3, 6, 12, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 8, 13, 10, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 9, 5, 8 ], "yaxis": "y5" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "cfa9b44b-8569-4867-b133-64a973d5bec7", "x": [ 9 ], "xaxis": "x6", "y": [ 304 ], "yaxis": "y6" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "a8198a00-2c56-49dd-bf18-a59ab451ade7", "x": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 11, 9, 19, 5, 6, 6, 7, 3, 6, 8, 8, 8, 54, 13, 35, 43, 24, 14, 43, 27 ], "xaxis": "x6", "y": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 2600, 72, 123, 11, 59, 14, 275, 101, 704, 204, 120, 334, 26, 0, 24, 5, 0, 6, 0, 352 ], "yaxis": "y6" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "4e6cdd4c-837e-455f-b10d-23d3e9eb09dc", "x": [ 9 ], "xaxis": "x6", "y": [ 976 ], "yaxis": "y6" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "b93efd1f-5b52-4297-907f-05c9a267e3e4", "x": [ 21, 17, 15, 11, 12, 14, 11, 5, 12, 6, 4, 6, 11, 6, 10, 3, 6, 12, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 8, 13, 10, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 9, 5, 8 ], "xaxis": "x6", "y": [ 4700, 856, 186, 119, 2000, 4100, 2700, 77, 6900, 1200, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 2500, 917, 2000, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 800, 477, 123 ], "yaxis": "y6" }, { "marker": { "color": "rgb(31, 119, 180)" }, "showlegend": false, "type": "histogram", "uid": "b0e2c289-6443-4c46-8c8d-60308e804fa2", "x": [ 304 ], "xaxis": "x7", "yaxis": "y7" }, { "marker": { "color": "rgb(255, 127, 14)" }, "showlegend": false, "type": "histogram", "uid": "7770bf30-a00c-43b5-901f-0f3dd7f4de8f", "x": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 2600, 72, 123, 11, 59, 14, 275, 101, 704, 204, 120, 334, 26, 0, 24, 5, 0, 6, 0, 352 ], "xaxis": "x7", "yaxis": "y7" }, { "marker": { "color": "rgb(44, 160, 44)" }, "showlegend": false, "type": "histogram", "uid": "dbf27e75-7208-4d3d-8b95-942dae5f42a8", "x": [ 976 ], "xaxis": "x7", "yaxis": "y7" }, { "marker": { "color": "rgb(214, 39, 40)" }, "showlegend": false, "type": "histogram", "uid": "3a152b4f-4663-45d3-a503-6b200c207d62", "x": [ 4700, 856, 186, 119, 2000, 4100, 2700, 77, 6900, 1200, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 2500, 917, 2000, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 800, 477, 123 ], "xaxis": "x7", "yaxis": "y7" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "2ab77884-65e4-44d9-9180-ed4c7f249efc", "x": [ 2087 ], "xaxis": "x8", "y": [ 304 ], "yaxis": "y8" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "ab55e61f-67cc-496b-a046-a335dd7a6c5f", "x": [ 1859, 3891, 12025, 2533, 3892, 13048, 1778, 2345, 1895, 4684, 6666, 7659, 3341, 5508, 4772, 1214, 6800, 1412, 3904, 2264, 2850, 2509, 5160, 1073, 1314, 1557, 1653, 634, 1410, 2128, 1918, 2185, 15063, 3659, 9698, 8507, 4145, 3068, 12083, 7125 ], "xaxis": "x8", "y": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 2600, 72, 123, 11, 59, 14, 275, 101, 704, 204, 120, 334, 26, 0, 24, 5, 0, 6, 0, 352 ], "yaxis": "y8" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "b37a334a-2de5-46e6-98ef-e43d4b53958a", "x": [ 2172 ], "xaxis": "x8", "y": [ 976 ], "yaxis": "y8" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "bbec7cce-5d6d-417c-92d4-95f92c600cec", "x": [ 4494, 3504, 3569, 2817, 2456, 2974, 2395, 1169, 2528, 1361, 1014, 1562, 2480, 1281, 2450, 721, 1375, 2772, 1944, 1827, 933, 2565, 1906, 2394, 2220, 2614, 2365, 1577, 2394, 2690, 2620, 1480, 765, 3553, 3106, 2622, 2338, 2975, 2648, 5228, 1998, 3393, 1957, 4298, 3718, 1247, 2634, 2041, 2343, 373, 3996, 3834, 163, 4042, 2658, 3756, 1172, 1580, 3756, 1809, 2999, 2483, 2933, 1346, 3797, 1979, 1286, 1741, 2230, 1561, 1355, 3398, 2824, 1397, 877, 1310, 1806, 1075, 1898 ], "xaxis": "x8", "y": [ 4700, 856, 186, 119, 2000, 4100, 2700, 77, 6900, 1200, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 2500, 917, 2000, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 800, 477, 123 ], "yaxis": "y8" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "7112116a-4734-498e-a424-f91ac7e00bae", "x": [ 1 ], "xaxis": "x9", "y": [ 304 ], "yaxis": "y9" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "8d07eede-2bf8-459a-a313-84cae8281681", "x": [ 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 4, 0, 0, 3, 0, 1, 1, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 1, 11, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3 ], "xaxis": "x9", "y": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 2600, 72, 123, 11, 59, 14, 275, 101, 704, 204, 120, 334, 26, 0, 24, 5, 0, 6, 0, 352 ], "yaxis": "y9" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "be7f110b-f5d6-482d-8825-854f3df4d040", "x": [ 4 ], "xaxis": "x9", "y": [ 976 ], "yaxis": "y9" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "8e9da00a-5ead-419f-8522-30a3cca68678", "x": [ 27, 5, 1, 2, 12, 15, 16, 1, 18, 4, 16, 3, 6, 17, 27, 57, 0, 20, 17, 3, 6, 28, 28, 13, 6, 11, 15, 6, 15, 6, 6, 21, 4, 25, 10, 12, 12, 12, 21, 4, 21, 8, 11, 6, 3, 2, 16, 16, 0, 3, 12, 4, 1, 4, 10, 4, 3, 0, 5, 5, 0, 8, 16, 10, 5, 0, 0, 0, 1, 5, 6, 4, 9, 6, 15, 2, 4, 2, 2 ], "xaxis": "x9", "y": [ 4700, 856, 186, 119, 2000, 4100, 2700, 77, 6900, 1200, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 2500, 917, 2000, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 800, 477, 123 ], "yaxis": "y9" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "d6cd7713-aff3-4f1f-9669-61e181ebc96a", "x": [ 5.97260244212963 ], "xaxis": "x10", "y": [ 304 ], "yaxis": "y10" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "33fa98c7-5ad0-4b46-b0af-33da5ba6bb32", "x": [ 0.00013686342592592594, 0.00033578703703703705, 0.03816039351851852, 0.6164853125, 1.5224345949074076, 0.0851078125, 1.2658201736111112, 1.0190222222222223, 0.3634774074074074, 16.762090289351853, -13.034827337962964, -0.0031568402777777784, 1.5417627777777778, 0.11076126157407408, 0.05278362268518519, 0.721846087962963, 0.07514296296296297, 0.04734789351851852, 0.06323819444444445, 70.21814247685187, 6.662462303240741, 2.002826203703704, 4.789699861111111, 0.542535300925926, 0.07436179398148149, 0.06844539351851853, 10.72027101851852, 1.4461132870370372, 0.08701903935185186, 0.09375503472222223, 0.20608988425925928, 2.0301000694444444, 349.5465040277778, 349.5432173726852, 349.5475984606482, 349.5465228009259, 349.54624295138893, 349.546117337963, 200.06914814814817, 1.8764517129629632 ], "xaxis": "x10", "y": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 2600, 72, 123, 11, 59, 14, 275, 101, 704, 204, 120, 334, 26, 0, 24, 5, 0, 6, 0, 352 ], "yaxis": "y10" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "6aed219a-5d0a-4089-b298-9ece433402a0", "x": [ 1.1435136226851852 ], "xaxis": "x10", "y": [ 976 ], "yaxis": "y10" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "6d225a78-f6fe-4940-a3a0-42f8ca94fec5", "x": [ 0.8393796990740741, 2.942347118055556, 0.30513957175925926, 5.982899849537037, 0.3911272800925926, 1.5017016666666667, 0.19550653935185183, 0.059555972222222225, 5.876935300925926, 0.18709101851851853, 0.9435467939814814, 1.0799120370370372, 1.5062245833333334, 0.16989356481481482, 2.5335116550925925, 0.05760177083333334, 7.521112453703704, 0.6328281481481483, 0.6812593981481482, 1.2101670023148148, 1.538078912037037, 3.8594648726851855, 0.16226043981481483, 0.9096273611111112, 1.8925094212962965, 0.6409916898148148, 0.9606450925925927, 2.7539970949074077, 1.4446409490740741, 17.731662743055555, 9.105731284722223, 0.10086562500000001, 0.6511788194444446, 8.954832291666667, 0.8160681018518519, 1.008210324074074, 3.0886693981481486, 3.7277022916666667, 1.1322710879629632, 26.09921980324074, 0.7469730671296297, 0.8963596412037037, 0.6889808101851852, 10.66455761574074, 9.542422650462964, 0.10661085648148148, 12.911633854166666, 11.392080682870372, 9.975229780092592, 0.03320025462962963, 21.90822570601852, 0.026584351851851852, 0.43628284722222227, 0.6968928356481482, 8.083771666666667, 2.7727853009259262, 1.2106303472222222, 0.2948339930555556, 2.598375787037037, 1.0499642824074074, 5.338199189814815, 1.8400799189814814, 10.804943877314816, 0.9825340046296297, 21.58783954861111, 1.7732069560185186, 1.7915407407407407, 4.942748831018519, 7.8870652199074085, 3.0712562500000002, 0.11845116898148149, 2.817408078703704, 1.7777973958333335, 0.6065380671296297, 14.850819016203705, 15.784122881944446, 0.19919303240740743, 0.47272067129629636, 0.9964747222222223 ], "xaxis": "x10", "y": [ 4700, 856, 186, 119, 2000, 4100, 2700, 77, 6900, 1200, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 2500, 917, 2000, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 800, 477, 123 ], "yaxis": "y10" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "b16ea946-57a4-4249-beae-033b9d0ea5e4", "x": [ 9 ], "xaxis": "x11", "y": [ 2087 ], "yaxis": "y11" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "6ad745dd-b188-4827-b4e2-fd04bfae79e5", "x": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 11, 9, 19, 5, 6, 6, 7, 3, 6, 8, 8, 8, 54, 13, 35, 43, 24, 14, 43, 27 ], "xaxis": "x11", "y": [ 1859, 3891, 12025, 2533, 3892, 13048, 1778, 2345, 1895, 4684, 6666, 7659, 3341, 5508, 4772, 1214, 6800, 1412, 3904, 2264, 2850, 2509, 5160, 1073, 1314, 1557, 1653, 634, 1410, 2128, 1918, 2185, 15063, 3659, 9698, 8507, 4145, 3068, 12083, 7125 ], "yaxis": "y11" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "536d4a39-f0a4-4ac9-90ee-ed1dbc87282b", "x": [ 9 ], "xaxis": "x11", "y": [ 2172 ], "yaxis": "y11" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "b7c9112a-2ed5-4725-be6c-755099507c32", "x": [ 21, 17, 15, 11, 12, 14, 11, 5, 12, 6, 4, 6, 11, 6, 10, 3, 6, 12, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 8, 13, 10, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 9, 5, 8 ], "xaxis": "x11", "y": [ 4494, 3504, 3569, 2817, 2456, 2974, 2395, 1169, 2528, 1361, 1014, 1562, 2480, 1281, 2450, 721, 1375, 2772, 1944, 1827, 933, 2565, 1906, 2394, 2220, 2614, 2365, 1577, 2394, 2690, 2620, 1480, 765, 3553, 3106, 2622, 2338, 2975, 2648, 5228, 1998, 3393, 1957, 4298, 3718, 1247, 2634, 2041, 2343, 373, 3996, 3834, 163, 4042, 2658, 3756, 1172, 1580, 3756, 1809, 2999, 2483, 2933, 1346, 3797, 1979, 1286, 1741, 2230, 1561, 1355, 3398, 2824, 1397, 877, 1310, 1806, 1075, 1898 ], "yaxis": "y11" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "f138313c-e6ff-4b73-a46c-14a9d0f2adb9", "x": [ 304 ], "xaxis": "x12", "y": [ 2087 ], "yaxis": "y12" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "9d3814a7-2112-4c98-a3ee-f14d0efa2aa0", "x": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 2600, 72, 123, 11, 59, 14, 275, 101, 704, 204, 120, 334, 26, 0, 24, 5, 0, 6, 0, 352 ], "xaxis": "x12", "y": [ 1859, 3891, 12025, 2533, 3892, 13048, 1778, 2345, 1895, 4684, 6666, 7659, 3341, 5508, 4772, 1214, 6800, 1412, 3904, 2264, 2850, 2509, 5160, 1073, 1314, 1557, 1653, 634, 1410, 2128, 1918, 2185, 15063, 3659, 9698, 8507, 4145, 3068, 12083, 7125 ], "yaxis": "y12" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "d0a8334c-71e2-4360-8cf9-b1e1982e03de", "x": [ 976 ], "xaxis": "x12", "y": [ 2172 ], "yaxis": "y12" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "006827a0-111e-4f22-b303-19646402e1db", "x": [ 4700, 856, 186, 119, 2000, 4100, 2700, 77, 6900, 1200, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 2500, 917, 2000, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 800, 477, 123 ], "xaxis": "x12", "y": [ 4494, 3504, 3569, 2817, 2456, 2974, 2395, 1169, 2528, 1361, 1014, 1562, 2480, 1281, 2450, 721, 1375, 2772, 1944, 1827, 933, 2565, 1906, 2394, 2220, 2614, 2365, 1577, 2394, 2690, 2620, 1480, 765, 3553, 3106, 2622, 2338, 2975, 2648, 5228, 1998, 3393, 1957, 4298, 3718, 1247, 2634, 2041, 2343, 373, 3996, 3834, 163, 4042, 2658, 3756, 1172, 1580, 3756, 1809, 2999, 2483, 2933, 1346, 3797, 1979, 1286, 1741, 2230, 1561, 1355, 3398, 2824, 1397, 877, 1310, 1806, 1075, 1898 ], "yaxis": "y12" }, { "marker": { "color": "rgb(31, 119, 180)" }, "showlegend": false, "type": "histogram", "uid": "98e08c52-ab37-4be4-9e50-730b86425e7a", "x": [ 2087 ], "xaxis": "x13", "yaxis": "y13" }, { "marker": { "color": "rgb(255, 127, 14)" }, "showlegend": false, "type": "histogram", "uid": "22d1dd47-6042-4831-8984-d308870586ef", "x": [ 1859, 3891, 12025, 2533, 3892, 13048, 1778, 2345, 1895, 4684, 6666, 7659, 3341, 5508, 4772, 1214, 6800, 1412, 3904, 2264, 2850, 2509, 5160, 1073, 1314, 1557, 1653, 634, 1410, 2128, 1918, 2185, 15063, 3659, 9698, 8507, 4145, 3068, 12083, 7125 ], "xaxis": "x13", "yaxis": "y13" }, { "marker": { "color": "rgb(44, 160, 44)" }, "showlegend": false, "type": "histogram", "uid": "53ab6135-3df4-43d6-9566-f7d433545503", "x": [ 2172 ], "xaxis": "x13", "yaxis": "y13" }, { "marker": { "color": "rgb(214, 39, 40)" }, "showlegend": false, "type": "histogram", "uid": "fd0c3f71-a20c-4caa-ba7a-cc3b3a3c1150", "x": [ 4494, 3504, 3569, 2817, 2456, 2974, 2395, 1169, 2528, 1361, 1014, 1562, 2480, 1281, 2450, 721, 1375, 2772, 1944, 1827, 933, 2565, 1906, 2394, 2220, 2614, 2365, 1577, 2394, 2690, 2620, 1480, 765, 3553, 3106, 2622, 2338, 2975, 2648, 5228, 1998, 3393, 1957, 4298, 3718, 1247, 2634, 2041, 2343, 373, 3996, 3834, 163, 4042, 2658, 3756, 1172, 1580, 3756, 1809, 2999, 2483, 2933, 1346, 3797, 1979, 1286, 1741, 2230, 1561, 1355, 3398, 2824, 1397, 877, 1310, 1806, 1075, 1898 ], "xaxis": "x13", "yaxis": "y13" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "f86d1bf1-cf23-478b-86cb-ef5a1a679634", "x": [ 1 ], "xaxis": "x14", "y": [ 2087 ], "yaxis": "y14" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "f15484d0-0c0f-48a7-9b08-9fd0f7c0a012", "x": [ 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 4, 0, 0, 3, 0, 1, 1, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 1, 11, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3 ], "xaxis": "x14", "y": [ 1859, 3891, 12025, 2533, 3892, 13048, 1778, 2345, 1895, 4684, 6666, 7659, 3341, 5508, 4772, 1214, 6800, 1412, 3904, 2264, 2850, 2509, 5160, 1073, 1314, 1557, 1653, 634, 1410, 2128, 1918, 2185, 15063, 3659, 9698, 8507, 4145, 3068, 12083, 7125 ], "yaxis": "y14" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "b10665e0-49a4-4a5c-a6aa-08436f9b742e", "x": [ 4 ], "xaxis": "x14", "y": [ 2172 ], "yaxis": "y14" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "96014c63-7f02-4e62-b87e-8d074010c5b1", "x": [ 27, 5, 1, 2, 12, 15, 16, 1, 18, 4, 16, 3, 6, 17, 27, 57, 0, 20, 17, 3, 6, 28, 28, 13, 6, 11, 15, 6, 15, 6, 6, 21, 4, 25, 10, 12, 12, 12, 21, 4, 21, 8, 11, 6, 3, 2, 16, 16, 0, 3, 12, 4, 1, 4, 10, 4, 3, 0, 5, 5, 0, 8, 16, 10, 5, 0, 0, 0, 1, 5, 6, 4, 9, 6, 15, 2, 4, 2, 2 ], "xaxis": "x14", "y": [ 4494, 3504, 3569, 2817, 2456, 2974, 2395, 1169, 2528, 1361, 1014, 1562, 2480, 1281, 2450, 721, 1375, 2772, 1944, 1827, 933, 2565, 1906, 2394, 2220, 2614, 2365, 1577, 2394, 2690, 2620, 1480, 765, 3553, 3106, 2622, 2338, 2975, 2648, 5228, 1998, 3393, 1957, 4298, 3718, 1247, 2634, 2041, 2343, 373, 3996, 3834, 163, 4042, 2658, 3756, 1172, 1580, 3756, 1809, 2999, 2483, 2933, 1346, 3797, 1979, 1286, 1741, 2230, 1561, 1355, 3398, 2824, 1397, 877, 1310, 1806, 1075, 1898 ], "yaxis": "y14" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "972be066-e297-4ceb-b5ce-841ea6c51df5", "x": [ 5.97260244212963 ], "xaxis": "x15", "y": [ 2087 ], "yaxis": "y15" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "d5c4de62-9de0-402a-8ddf-1770dc27f7d2", "x": [ 0.00013686342592592594, 0.00033578703703703705, 0.03816039351851852, 0.6164853125, 1.5224345949074076, 0.0851078125, 1.2658201736111112, 1.0190222222222223, 0.3634774074074074, 16.762090289351853, -13.034827337962964, -0.0031568402777777784, 1.5417627777777778, 0.11076126157407408, 0.05278362268518519, 0.721846087962963, 0.07514296296296297, 0.04734789351851852, 0.06323819444444445, 70.21814247685187, 6.662462303240741, 2.002826203703704, 4.789699861111111, 0.542535300925926, 0.07436179398148149, 0.06844539351851853, 10.72027101851852, 1.4461132870370372, 0.08701903935185186, 0.09375503472222223, 0.20608988425925928, 2.0301000694444444, 349.5465040277778, 349.5432173726852, 349.5475984606482, 349.5465228009259, 349.54624295138893, 349.546117337963, 200.06914814814817, 1.8764517129629632 ], "xaxis": "x15", "y": [ 1859, 3891, 12025, 2533, 3892, 13048, 1778, 2345, 1895, 4684, 6666, 7659, 3341, 5508, 4772, 1214, 6800, 1412, 3904, 2264, 2850, 2509, 5160, 1073, 1314, 1557, 1653, 634, 1410, 2128, 1918, 2185, 15063, 3659, 9698, 8507, 4145, 3068, 12083, 7125 ], "yaxis": "y15" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "07d67710-790f-43c6-9112-112a45de4009", "x": [ 1.1435136226851852 ], "xaxis": "x15", "y": [ 2172 ], "yaxis": "y15" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "4e0ddd9d-66af-4012-b19f-6d16c60d7990", "x": [ 0.8393796990740741, 2.942347118055556, 0.30513957175925926, 5.982899849537037, 0.3911272800925926, 1.5017016666666667, 0.19550653935185183, 0.059555972222222225, 5.876935300925926, 0.18709101851851853, 0.9435467939814814, 1.0799120370370372, 1.5062245833333334, 0.16989356481481482, 2.5335116550925925, 0.05760177083333334, 7.521112453703704, 0.6328281481481483, 0.6812593981481482, 1.2101670023148148, 1.538078912037037, 3.8594648726851855, 0.16226043981481483, 0.9096273611111112, 1.8925094212962965, 0.6409916898148148, 0.9606450925925927, 2.7539970949074077, 1.4446409490740741, 17.731662743055555, 9.105731284722223, 0.10086562500000001, 0.6511788194444446, 8.954832291666667, 0.8160681018518519, 1.008210324074074, 3.0886693981481486, 3.7277022916666667, 1.1322710879629632, 26.09921980324074, 0.7469730671296297, 0.8963596412037037, 0.6889808101851852, 10.66455761574074, 9.542422650462964, 0.10661085648148148, 12.911633854166666, 11.392080682870372, 9.975229780092592, 0.03320025462962963, 21.90822570601852, 0.026584351851851852, 0.43628284722222227, 0.6968928356481482, 8.083771666666667, 2.7727853009259262, 1.2106303472222222, 0.2948339930555556, 2.598375787037037, 1.0499642824074074, 5.338199189814815, 1.8400799189814814, 10.804943877314816, 0.9825340046296297, 21.58783954861111, 1.7732069560185186, 1.7915407407407407, 4.942748831018519, 7.8870652199074085, 3.0712562500000002, 0.11845116898148149, 2.817408078703704, 1.7777973958333335, 0.6065380671296297, 14.850819016203705, 15.784122881944446, 0.19919303240740743, 0.47272067129629636, 0.9964747222222223 ], "xaxis": "x15", "y": [ 4494, 3504, 3569, 2817, 2456, 2974, 2395, 1169, 2528, 1361, 1014, 1562, 2480, 1281, 2450, 721, 1375, 2772, 1944, 1827, 933, 2565, 1906, 2394, 2220, 2614, 2365, 1577, 2394, 2690, 2620, 1480, 765, 3553, 3106, 2622, 2338, 2975, 2648, 5228, 1998, 3393, 1957, 4298, 3718, 1247, 2634, 2041, 2343, 373, 3996, 3834, 163, 4042, 2658, 3756, 1172, 1580, 3756, 1809, 2999, 2483, 2933, 1346, 3797, 1979, 1286, 1741, 2230, 1561, 1355, 3398, 2824, 1397, 877, 1310, 1806, 1075, 1898 ], "yaxis": "y15" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "05148f45-bd77-4b66-b3b6-1359fcb37d4b", "x": [ 9 ], "xaxis": "x16", "y": [ 1 ], "yaxis": "y16" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "83a843de-e3a7-4607-a7d4-f8b08ff17161", "x": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 11, 9, 19, 5, 6, 6, 7, 3, 6, 8, 8, 8, 54, 13, 35, 43, 24, 14, 43, 27 ], "xaxis": "x16", "y": [ 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 4, 0, 0, 3, 0, 1, 1, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 1, 11, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3 ], "yaxis": "y16" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "ca7e85b3-5ccc-40a9-bba8-ff86e2746de5", "x": [ 9 ], "xaxis": "x16", "y": [ 4 ], "yaxis": "y16" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "02d291fd-2567-48d2-a9aa-a7adfc5aa404", "x": [ 21, 17, 15, 11, 12, 14, 11, 5, 12, 6, 4, 6, 11, 6, 10, 3, 6, 12, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 8, 13, 10, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 9, 5, 8 ], "xaxis": "x16", "y": [ 27, 5, 1, 2, 12, 15, 16, 1, 18, 4, 16, 3, 6, 17, 27, 57, 0, 20, 17, 3, 6, 28, 28, 13, 6, 11, 15, 6, 15, 6, 6, 21, 4, 25, 10, 12, 12, 12, 21, 4, 21, 8, 11, 6, 3, 2, 16, 16, 0, 3, 12, 4, 1, 4, 10, 4, 3, 0, 5, 5, 0, 8, 16, 10, 5, 0, 0, 0, 1, 5, 6, 4, 9, 6, 15, 2, 4, 2, 2 ], "yaxis": "y16" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "5fec4ca6-8565-44a7-889a-b4b9e1cdf469", "x": [ 304 ], "xaxis": "x17", "y": [ 1 ], "yaxis": "y17" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "3921390b-7f60-4bee-9c33-70446f6852c4", "x": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 2600, 72, 123, 11, 59, 14, 275, 101, 704, 204, 120, 334, 26, 0, 24, 5, 0, 6, 0, 352 ], "xaxis": "x17", "y": [ 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 4, 0, 0, 3, 0, 1, 1, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 1, 11, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3 ], "yaxis": "y17" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "fcf3dd56-e04c-4bbe-92ac-1d476410e6db", "x": [ 976 ], "xaxis": "x17", "y": [ 4 ], "yaxis": "y17" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "8896296d-220a-49ce-b227-786703ca2b86", "x": [ 4700, 856, 186, 119, 2000, 4100, 2700, 77, 6900, 1200, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 2500, 917, 2000, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 800, 477, 123 ], "xaxis": "x17", "y": [ 27, 5, 1, 2, 12, 15, 16, 1, 18, 4, 16, 3, 6, 17, 27, 57, 0, 20, 17, 3, 6, 28, 28, 13, 6, 11, 15, 6, 15, 6, 6, 21, 4, 25, 10, 12, 12, 12, 21, 4, 21, 8, 11, 6, 3, 2, 16, 16, 0, 3, 12, 4, 1, 4, 10, 4, 3, 0, 5, 5, 0, 8, 16, 10, 5, 0, 0, 0, 1, 5, 6, 4, 9, 6, 15, 2, 4, 2, 2 ], "yaxis": "y17" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "83e120f7-4bee-4083-b2dd-34ff3b62532c", "x": [ 2087 ], "xaxis": "x18", "y": [ 1 ], "yaxis": "y18" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "702b5b5b-7a11-4d38-9275-b7e36457a616", "x": [ 1859, 3891, 12025, 2533, 3892, 13048, 1778, 2345, 1895, 4684, 6666, 7659, 3341, 5508, 4772, 1214, 6800, 1412, 3904, 2264, 2850, 2509, 5160, 1073, 1314, 1557, 1653, 634, 1410, 2128, 1918, 2185, 15063, 3659, 9698, 8507, 4145, 3068, 12083, 7125 ], "xaxis": "x18", "y": [ 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 4, 0, 0, 3, 0, 1, 1, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 1, 11, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3 ], "yaxis": "y18" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "d6b1c9b2-b2b8-42b4-9b38-02ea476b6bd7", "x": [ 2172 ], "xaxis": "x18", "y": [ 4 ], "yaxis": "y18" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "dcb8f24f-145d-4602-8c5a-793e8ad3c846", "x": [ 4494, 3504, 3569, 2817, 2456, 2974, 2395, 1169, 2528, 1361, 1014, 1562, 2480, 1281, 2450, 721, 1375, 2772, 1944, 1827, 933, 2565, 1906, 2394, 2220, 2614, 2365, 1577, 2394, 2690, 2620, 1480, 765, 3553, 3106, 2622, 2338, 2975, 2648, 5228, 1998, 3393, 1957, 4298, 3718, 1247, 2634, 2041, 2343, 373, 3996, 3834, 163, 4042, 2658, 3756, 1172, 1580, 3756, 1809, 2999, 2483, 2933, 1346, 3797, 1979, 1286, 1741, 2230, 1561, 1355, 3398, 2824, 1397, 877, 1310, 1806, 1075, 1898 ], "xaxis": "x18", "y": [ 27, 5, 1, 2, 12, 15, 16, 1, 18, 4, 16, 3, 6, 17, 27, 57, 0, 20, 17, 3, 6, 28, 28, 13, 6, 11, 15, 6, 15, 6, 6, 21, 4, 25, 10, 12, 12, 12, 21, 4, 21, 8, 11, 6, 3, 2, 16, 16, 0, 3, 12, 4, 1, 4, 10, 4, 3, 0, 5, 5, 0, 8, 16, 10, 5, 0, 0, 0, 1, 5, 6, 4, 9, 6, 15, 2, 4, 2, 2 ], "yaxis": "y18" }, { "marker": { "color": "rgb(31, 119, 180)" }, "showlegend": false, "type": "histogram", "uid": "e9d987c0-f1a3-4950-8d9b-8f318e8b2bae", "x": [ 1 ], "xaxis": "x19", "yaxis": "y19" }, { "marker": { "color": "rgb(255, 127, 14)" }, "showlegend": false, "type": "histogram", "uid": "2c56da39-3c97-45dd-ae69-30bef3156fa7", "x": [ 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 4, 0, 0, 3, 0, 1, 1, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 1, 11, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3 ], "xaxis": "x19", "yaxis": "y19" }, { "marker": { "color": "rgb(44, 160, 44)" }, "showlegend": false, "type": "histogram", "uid": "aa85d25d-b594-43f0-938a-04fca5b832ea", "x": [ 4 ], "xaxis": "x19", "yaxis": "y19" }, { "marker": { "color": "rgb(214, 39, 40)" }, "showlegend": false, "type": "histogram", "uid": "d6997279-56f6-4ee2-b3d1-89b2787a9be0", "x": [ 27, 5, 1, 2, 12, 15, 16, 1, 18, 4, 16, 3, 6, 17, 27, 57, 0, 20, 17, 3, 6, 28, 28, 13, 6, 11, 15, 6, 15, 6, 6, 21, 4, 25, 10, 12, 12, 12, 21, 4, 21, 8, 11, 6, 3, 2, 16, 16, 0, 3, 12, 4, 1, 4, 10, 4, 3, 0, 5, 5, 0, 8, 16, 10, 5, 0, 0, 0, 1, 5, 6, 4, 9, 6, 15, 2, 4, 2, 2 ], "xaxis": "x19", "yaxis": "y19" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "77707e16-0696-4df0-99e5-9d8e82a65505", "x": [ 5.97260244212963 ], "xaxis": "x20", "y": [ 1 ], "yaxis": "y20" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "b0a26654-fdce-4de5-ba26-3c5bf872deff", "x": [ 0.00013686342592592594, 0.00033578703703703705, 0.03816039351851852, 0.6164853125, 1.5224345949074076, 0.0851078125, 1.2658201736111112, 1.0190222222222223, 0.3634774074074074, 16.762090289351853, -13.034827337962964, -0.0031568402777777784, 1.5417627777777778, 0.11076126157407408, 0.05278362268518519, 0.721846087962963, 0.07514296296296297, 0.04734789351851852, 0.06323819444444445, 70.21814247685187, 6.662462303240741, 2.002826203703704, 4.789699861111111, 0.542535300925926, 0.07436179398148149, 0.06844539351851853, 10.72027101851852, 1.4461132870370372, 0.08701903935185186, 0.09375503472222223, 0.20608988425925928, 2.0301000694444444, 349.5465040277778, 349.5432173726852, 349.5475984606482, 349.5465228009259, 349.54624295138893, 349.546117337963, 200.06914814814817, 1.8764517129629632 ], "xaxis": "x20", "y": [ 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 4, 0, 0, 3, 0, 1, 1, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 1, 11, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3 ], "yaxis": "y20" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "6c04a96a-341e-4dbe-b9d7-d87cf64e51c7", "x": [ 1.1435136226851852 ], "xaxis": "x20", "y": [ 4 ], "yaxis": "y20" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "836c4186-651a-4228-96d1-0b6e2e87e89c", "x": [ 0.8393796990740741, 2.942347118055556, 0.30513957175925926, 5.982899849537037, 0.3911272800925926, 1.5017016666666667, 0.19550653935185183, 0.059555972222222225, 5.876935300925926, 0.18709101851851853, 0.9435467939814814, 1.0799120370370372, 1.5062245833333334, 0.16989356481481482, 2.5335116550925925, 0.05760177083333334, 7.521112453703704, 0.6328281481481483, 0.6812593981481482, 1.2101670023148148, 1.538078912037037, 3.8594648726851855, 0.16226043981481483, 0.9096273611111112, 1.8925094212962965, 0.6409916898148148, 0.9606450925925927, 2.7539970949074077, 1.4446409490740741, 17.731662743055555, 9.105731284722223, 0.10086562500000001, 0.6511788194444446, 8.954832291666667, 0.8160681018518519, 1.008210324074074, 3.0886693981481486, 3.7277022916666667, 1.1322710879629632, 26.09921980324074, 0.7469730671296297, 0.8963596412037037, 0.6889808101851852, 10.66455761574074, 9.542422650462964, 0.10661085648148148, 12.911633854166666, 11.392080682870372, 9.975229780092592, 0.03320025462962963, 21.90822570601852, 0.026584351851851852, 0.43628284722222227, 0.6968928356481482, 8.083771666666667, 2.7727853009259262, 1.2106303472222222, 0.2948339930555556, 2.598375787037037, 1.0499642824074074, 5.338199189814815, 1.8400799189814814, 10.804943877314816, 0.9825340046296297, 21.58783954861111, 1.7732069560185186, 1.7915407407407407, 4.942748831018519, 7.8870652199074085, 3.0712562500000002, 0.11845116898148149, 2.817408078703704, 1.7777973958333335, 0.6065380671296297, 14.850819016203705, 15.784122881944446, 0.19919303240740743, 0.47272067129629636, 0.9964747222222223 ], "xaxis": "x20", "y": [ 27, 5, 1, 2, 12, 15, 16, 1, 18, 4, 16, 3, 6, 17, 27, 57, 0, 20, 17, 3, 6, 28, 28, 13, 6, 11, 15, 6, 15, 6, 6, 21, 4, 25, 10, 12, 12, 12, 21, 4, 21, 8, 11, 6, 3, 2, 16, 16, 0, 3, 12, 4, 1, 4, 10, 4, 3, 0, 5, 5, 0, 8, 16, 10, 5, 0, 0, 0, 1, 5, 6, 4, 9, 6, 15, 2, 4, 2, 2 ], "yaxis": "y20" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "cd18c69f-7d3c-4719-b928-13c94b79f15b", "x": [ 9 ], "xaxis": "x21", "y": [ 5.97260244212963 ], "yaxis": "y21" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "f4a94556-0880-4c84-9b6d-1dce98082a75", "x": [ 7, 14, 42, 9, 14, 47, 14, 12, 7, 17, 38, 31, 12, 29, 27, 6, 31, 6, 24, 8, 11, 9, 19, 5, 6, 6, 7, 3, 6, 8, 8, 8, 54, 13, 35, 43, 24, 14, 43, 27 ], "xaxis": "x21", "y": [ 0.00013686342592592594, 0.00033578703703703705, 0.03816039351851852, 0.6164853125, 1.5224345949074076, 0.0851078125, 1.2658201736111112, 1.0190222222222223, 0.3634774074074074, 16.762090289351853, -13.034827337962964, -0.0031568402777777784, 1.5417627777777778, 0.11076126157407408, 0.05278362268518519, 0.721846087962963, 0.07514296296296297, 0.04734789351851852, 0.06323819444444445, 70.21814247685187, 6.662462303240741, 2.002826203703704, 4.789699861111111, 0.542535300925926, 0.07436179398148149, 0.06844539351851853, 10.72027101851852, 1.4461132870370372, 0.08701903935185186, 0.09375503472222223, 0.20608988425925928, 2.0301000694444444, 349.5465040277778, 349.5432173726852, 349.5475984606482, 349.5465228009259, 349.54624295138893, 349.546117337963, 200.06914814814817, 1.8764517129629632 ], "yaxis": "y21" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "d0a5722f-58dc-4842-9eb3-6d96997d1bbe", "x": [ 9 ], "xaxis": "x21", "y": [ 1.1435136226851852 ], "yaxis": "y21" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "aabcda28-035f-4298-860c-a1d8ae31b594", "x": [ 21, 17, 15, 11, 12, 14, 11, 5, 12, 6, 4, 6, 11, 6, 10, 3, 6, 12, 9, 8, 4, 11, 9, 11, 10, 11, 10, 8, 10, 12, 12, 7, 3, 15, 13, 11, 9, 12, 11, 20, 10, 14, 9, 18, 15, 6, 11, 8, 10, 3, 17, 15, 1, 16, 10, 15, 5, 8, 17, 8, 13, 10, 11, 6, 15, 9, 6, 8, 9, 7, 6, 15, 12, 8, 5, 7, 9, 5, 8 ], "xaxis": "x21", "y": [ 0.8393796990740741, 2.942347118055556, 0.30513957175925926, 5.982899849537037, 0.3911272800925926, 1.5017016666666667, 0.19550653935185183, 0.059555972222222225, 5.876935300925926, 0.18709101851851853, 0.9435467939814814, 1.0799120370370372, 1.5062245833333334, 0.16989356481481482, 2.5335116550925925, 0.05760177083333334, 7.521112453703704, 0.6328281481481483, 0.6812593981481482, 1.2101670023148148, 1.538078912037037, 3.8594648726851855, 0.16226043981481483, 0.9096273611111112, 1.8925094212962965, 0.6409916898148148, 0.9606450925925927, 2.7539970949074077, 1.4446409490740741, 17.731662743055555, 9.105731284722223, 0.10086562500000001, 0.6511788194444446, 8.954832291666667, 0.8160681018518519, 1.008210324074074, 3.0886693981481486, 3.7277022916666667, 1.1322710879629632, 26.09921980324074, 0.7469730671296297, 0.8963596412037037, 0.6889808101851852, 10.66455761574074, 9.542422650462964, 0.10661085648148148, 12.911633854166666, 11.392080682870372, 9.975229780092592, 0.03320025462962963, 21.90822570601852, 0.026584351851851852, 0.43628284722222227, 0.6968928356481482, 8.083771666666667, 2.7727853009259262, 1.2106303472222222, 0.2948339930555556, 2.598375787037037, 1.0499642824074074, 5.338199189814815, 1.8400799189814814, 10.804943877314816, 0.9825340046296297, 21.58783954861111, 1.7732069560185186, 1.7915407407407407, 4.942748831018519, 7.8870652199074085, 3.0712562500000002, 0.11845116898148149, 2.817408078703704, 1.7777973958333335, 0.6065380671296297, 14.850819016203705, 15.784122881944446, 0.19919303240740743, 0.47272067129629636, 0.9964747222222223 ], "yaxis": "y21" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "a570e008-2410-4444-bc6b-54c8e39eefbc", "x": [ 304 ], "xaxis": "x22", "y": [ 5.97260244212963 ], "yaxis": "y22" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "e62215ff-f512-43f3-905c-5123c5978462", "x": [ 2, 18, 50, 0, 0, 0, 73, 233, 2, 0, 681, 5, 7, 87, 23, 4, 113, 8, 17, 8, 2600, 72, 123, 11, 59, 14, 275, 101, 704, 204, 120, 334, 26, 0, 24, 5, 0, 6, 0, 352 ], "xaxis": "x22", "y": [ 0.00013686342592592594, 0.00033578703703703705, 0.03816039351851852, 0.6164853125, 1.5224345949074076, 0.0851078125, 1.2658201736111112, 1.0190222222222223, 0.3634774074074074, 16.762090289351853, -13.034827337962964, -0.0031568402777777784, 1.5417627777777778, 0.11076126157407408, 0.05278362268518519, 0.721846087962963, 0.07514296296296297, 0.04734789351851852, 0.06323819444444445, 70.21814247685187, 6.662462303240741, 2.002826203703704, 4.789699861111111, 0.542535300925926, 0.07436179398148149, 0.06844539351851853, 10.72027101851852, 1.4461132870370372, 0.08701903935185186, 0.09375503472222223, 0.20608988425925928, 2.0301000694444444, 349.5465040277778, 349.5432173726852, 349.5475984606482, 349.5465228009259, 349.54624295138893, 349.546117337963, 200.06914814814817, 1.8764517129629632 ], "yaxis": "y22" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "c2e0981e-d203-4718-9539-3013b389a4c5", "x": [ 976 ], "xaxis": "x22", "y": [ 1.1435136226851852 ], "yaxis": "y22" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "26086e3b-9bce-435f-b937-d166cb0c826e", "x": [ 4700, 856, 186, 119, 2000, 4100, 2700, 77, 6900, 1200, 1600, 1600, 1000, 4300, 4970, 13000, 223, 4800, 5900, 544, 895, 6700, 6500, 2700, 1100, 2900, 2600, 2800, 5300, 1300, 1000, 7800, 364, 13400, 4100, 2200, 3800, 6200, 8200, 1300, 5400, 2300, 2700, 2100, 707, 632, 2600, 4000, 820, 824, 3700, 651, 657, 1100, 2800, 3100, 786, 222, 3300, 2500, 917, 2000, 3200, 648, 2300, 806, 731, 581, 806, 2200, 1200, 619, 2600, 2000, 3400, 419, 800, 477, 123 ], "xaxis": "x22", "y": [ 0.8393796990740741, 2.942347118055556, 0.30513957175925926, 5.982899849537037, 0.3911272800925926, 1.5017016666666667, 0.19550653935185183, 0.059555972222222225, 5.876935300925926, 0.18709101851851853, 0.9435467939814814, 1.0799120370370372, 1.5062245833333334, 0.16989356481481482, 2.5335116550925925, 0.05760177083333334, 7.521112453703704, 0.6328281481481483, 0.6812593981481482, 1.2101670023148148, 1.538078912037037, 3.8594648726851855, 0.16226043981481483, 0.9096273611111112, 1.8925094212962965, 0.6409916898148148, 0.9606450925925927, 2.7539970949074077, 1.4446409490740741, 17.731662743055555, 9.105731284722223, 0.10086562500000001, 0.6511788194444446, 8.954832291666667, 0.8160681018518519, 1.008210324074074, 3.0886693981481486, 3.7277022916666667, 1.1322710879629632, 26.09921980324074, 0.7469730671296297, 0.8963596412037037, 0.6889808101851852, 10.66455761574074, 9.542422650462964, 0.10661085648148148, 12.911633854166666, 11.392080682870372, 9.975229780092592, 0.03320025462962963, 21.90822570601852, 0.026584351851851852, 0.43628284722222227, 0.6968928356481482, 8.083771666666667, 2.7727853009259262, 1.2106303472222222, 0.2948339930555556, 2.598375787037037, 1.0499642824074074, 5.338199189814815, 1.8400799189814814, 10.804943877314816, 0.9825340046296297, 21.58783954861111, 1.7732069560185186, 1.7915407407407407, 4.942748831018519, 7.8870652199074085, 3.0712562500000002, 0.11845116898148149, 2.817408078703704, 1.7777973958333335, 0.6065380671296297, 14.850819016203705, 15.784122881944446, 0.19919303240740743, 0.47272067129629636, 0.9964747222222223 ], "yaxis": "y22" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "e85c7b4b-d00c-45b2-ae6d-0e014f64a0e2", "x": [ 2087 ], "xaxis": "x23", "y": [ 5.97260244212963 ], "yaxis": "y23" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "b3019e15-e8b9-4169-8aa5-d44a3d02120f", "x": [ 1859, 3891, 12025, 2533, 3892, 13048, 1778, 2345, 1895, 4684, 6666, 7659, 3341, 5508, 4772, 1214, 6800, 1412, 3904, 2264, 2850, 2509, 5160, 1073, 1314, 1557, 1653, 634, 1410, 2128, 1918, 2185, 15063, 3659, 9698, 8507, 4145, 3068, 12083, 7125 ], "xaxis": "x23", "y": [ 0.00013686342592592594, 0.00033578703703703705, 0.03816039351851852, 0.6164853125, 1.5224345949074076, 0.0851078125, 1.2658201736111112, 1.0190222222222223, 0.3634774074074074, 16.762090289351853, -13.034827337962964, -0.0031568402777777784, 1.5417627777777778, 0.11076126157407408, 0.05278362268518519, 0.721846087962963, 0.07514296296296297, 0.04734789351851852, 0.06323819444444445, 70.21814247685187, 6.662462303240741, 2.002826203703704, 4.789699861111111, 0.542535300925926, 0.07436179398148149, 0.06844539351851853, 10.72027101851852, 1.4461132870370372, 0.08701903935185186, 0.09375503472222223, 0.20608988425925928, 2.0301000694444444, 349.5465040277778, 349.5432173726852, 349.5475984606482, 349.5465228009259, 349.54624295138893, 349.546117337963, 200.06914814814817, 1.8764517129629632 ], "yaxis": "y23" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "2d58e7fe-6aed-454b-ad4b-2ec5449efe11", "x": [ 2172 ], "xaxis": "x23", "y": [ 1.1435136226851852 ], "yaxis": "y23" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "06be1bd7-e740-4cc8-932b-de8f921660f5", "x": [ 4494, 3504, 3569, 2817, 2456, 2974, 2395, 1169, 2528, 1361, 1014, 1562, 2480, 1281, 2450, 721, 1375, 2772, 1944, 1827, 933, 2565, 1906, 2394, 2220, 2614, 2365, 1577, 2394, 2690, 2620, 1480, 765, 3553, 3106, 2622, 2338, 2975, 2648, 5228, 1998, 3393, 1957, 4298, 3718, 1247, 2634, 2041, 2343, 373, 3996, 3834, 163, 4042, 2658, 3756, 1172, 1580, 3756, 1809, 2999, 2483, 2933, 1346, 3797, 1979, 1286, 1741, 2230, 1561, 1355, 3398, 2824, 1397, 877, 1310, 1806, 1075, 1898 ], "xaxis": "x23", "y": [ 0.8393796990740741, 2.942347118055556, 0.30513957175925926, 5.982899849537037, 0.3911272800925926, 1.5017016666666667, 0.19550653935185183, 0.059555972222222225, 5.876935300925926, 0.18709101851851853, 0.9435467939814814, 1.0799120370370372, 1.5062245833333334, 0.16989356481481482, 2.5335116550925925, 0.05760177083333334, 7.521112453703704, 0.6328281481481483, 0.6812593981481482, 1.2101670023148148, 1.538078912037037, 3.8594648726851855, 0.16226043981481483, 0.9096273611111112, 1.8925094212962965, 0.6409916898148148, 0.9606450925925927, 2.7539970949074077, 1.4446409490740741, 17.731662743055555, 9.105731284722223, 0.10086562500000001, 0.6511788194444446, 8.954832291666667, 0.8160681018518519, 1.008210324074074, 3.0886693981481486, 3.7277022916666667, 1.1322710879629632, 26.09921980324074, 0.7469730671296297, 0.8963596412037037, 0.6889808101851852, 10.66455761574074, 9.542422650462964, 0.10661085648148148, 12.911633854166666, 11.392080682870372, 9.975229780092592, 0.03320025462962963, 21.90822570601852, 0.026584351851851852, 0.43628284722222227, 0.6968928356481482, 8.083771666666667, 2.7727853009259262, 1.2106303472222222, 0.2948339930555556, 2.598375787037037, 1.0499642824074074, 5.338199189814815, 1.8400799189814814, 10.804943877314816, 0.9825340046296297, 21.58783954861111, 1.7732069560185186, 1.7915407407407407, 4.942748831018519, 7.8870652199074085, 3.0712562500000002, 0.11845116898148149, 2.817408078703704, 1.7777973958333335, 0.6065380671296297, 14.850819016203705, 15.784122881944446, 0.19919303240740743, 0.47272067129629636, 0.9964747222222223 ], "yaxis": "y23" }, { "marker": { "color": "rgb(31, 119, 180)", "size": 8 }, "mode": "markers", "name": "Engineering @ Feature Labs", "showlegend": false, "type": "scatter", "uid": "a12db963-941e-4cf8-8a10-112b235d4c3c", "x": [ 1 ], "xaxis": "x24", "y": [ 5.97260244212963 ], "yaxis": "y24" }, { "marker": { "color": "rgb(255, 127, 14)", "size": 8 }, "mode": "markers", "name": "None", "showlegend": false, "type": "scatter", "uid": "290644a6-ca82-4b02-9d07-01991bb9a56d", "x": [ 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 4, 0, 0, 3, 0, 1, 1, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 1, 11, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3 ], "xaxis": "x24", "y": [ 0.00013686342592592594, 0.00033578703703703705, 0.03816039351851852, 0.6164853125, 1.5224345949074076, 0.0851078125, 1.2658201736111112, 1.0190222222222223, 0.3634774074074074, 16.762090289351853, -13.034827337962964, -0.0031568402777777784, 1.5417627777777778, 0.11076126157407408, 0.05278362268518519, 0.721846087962963, 0.07514296296296297, 0.04734789351851852, 0.06323819444444445, 70.21814247685187, 6.662462303240741, 2.002826203703704, 4.789699861111111, 0.542535300925926, 0.07436179398148149, 0.06844539351851853, 10.72027101851852, 1.4461132870370372, 0.08701903935185186, 0.09375503472222223, 0.20608988425925928, 2.0301000694444444, 349.5465040277778, 349.5432173726852, 349.5475984606482, 349.5465228009259, 349.54624295138893, 349.546117337963, 200.06914814814817, 1.8764517129629632 ], "yaxis": "y24" }, { "marker": { "color": "rgb(44, 160, 44)", "size": 8 }, "mode": "markers", "name": "Noteworthy - The Journal Blog", "showlegend": false, "type": "scatter", "uid": "a14cb5ee-0d11-4e82-bec6-b779692ce5e2", "x": [ 4 ], "xaxis": "x24", "y": [ 1.1435136226851852 ], "yaxis": "y24" }, { "marker": { "color": "rgb(214, 39, 40)", "size": 8 }, "mode": "markers", "name": "Towards Data Science", "showlegend": false, "type": "scatter", "uid": "ebe313fa-ba80-4d74-94c3-d4cc02a94cac", "x": [ 27, 5, 1, 2, 12, 15, 16, 1, 18, 4, 16, 3, 6, 17, 27, 57, 0, 20, 17, 3, 6, 28, 28, 13, 6, 11, 15, 6, 15, 6, 6, 21, 4, 25, 10, 12, 12, 12, 21, 4, 21, 8, 11, 6, 3, 2, 16, 16, 0, 3, 12, 4, 1, 4, 10, 4, 3, 0, 5, 5, 0, 8, 16, 10, 5, 0, 0, 0, 1, 5, 6, 4, 9, 6, 15, 2, 4, 2, 2 ], "xaxis": "x24", "y": [ 0.8393796990740741, 2.942347118055556, 0.30513957175925926, 5.982899849537037, 0.3911272800925926, 1.5017016666666667, 0.19550653935185183, 0.059555972222222225, 5.876935300925926, 0.18709101851851853, 0.9435467939814814, 1.0799120370370372, 1.5062245833333334, 0.16989356481481482, 2.5335116550925925, 0.05760177083333334, 7.521112453703704, 0.6328281481481483, 0.6812593981481482, 1.2101670023148148, 1.538078912037037, 3.8594648726851855, 0.16226043981481483, 0.9096273611111112, 1.8925094212962965, 0.6409916898148148, 0.9606450925925927, 2.7539970949074077, 1.4446409490740741, 17.731662743055555, 9.105731284722223, 0.10086562500000001, 0.6511788194444446, 8.954832291666667, 0.8160681018518519, 1.008210324074074, 3.0886693981481486, 3.7277022916666667, 1.1322710879629632, 26.09921980324074, 0.7469730671296297, 0.8963596412037037, 0.6889808101851852, 10.66455761574074, 9.542422650462964, 0.10661085648148148, 12.911633854166666, 11.392080682870372, 9.975229780092592, 0.03320025462962963, 21.90822570601852, 0.026584351851851852, 0.43628284722222227, 0.6968928356481482, 8.083771666666667, 2.7727853009259262, 1.2106303472222222, 0.2948339930555556, 2.598375787037037, 1.0499642824074074, 5.338199189814815, 1.8400799189814814, 10.804943877314816, 0.9825340046296297, 21.58783954861111, 1.7732069560185186, 1.7915407407407407, 4.942748831018519, 7.8870652199074085, 3.0712562500000002, 0.11845116898148149, 2.817408078703704, 1.7777973958333335, 0.6065380671296297, 14.850819016203705, 15.784122881944446, 0.19919303240740743, 0.47272067129629636, 0.9964747222222223 ], "yaxis": "y24" }, { "marker": { "color": "rgb(31, 119, 180)" }, "showlegend": false, "type": "histogram", "uid": "b3c49376-1a67-48f5-baa8-177324f0a771", "x": [ 5.97260244212963 ], "xaxis": "x25", "yaxis": "y25" }, { "marker": { "color": "rgb(255, 127, 14)" }, "showlegend": false, "type": "histogram", "uid": "870ce009-2097-46fd-8e99-5e6332b2af3b", "x": [ 0.00013686342592592594, 0.00033578703703703705, 0.03816039351851852, 0.6164853125, 1.5224345949074076, 0.0851078125, 1.2658201736111112, 1.0190222222222223, 0.3634774074074074, 16.762090289351853, -13.034827337962964, -0.0031568402777777784, 1.5417627777777778, 0.11076126157407408, 0.05278362268518519, 0.721846087962963, 0.07514296296296297, 0.04734789351851852, 0.06323819444444445, 70.21814247685187, 6.662462303240741, 2.002826203703704, 4.789699861111111, 0.542535300925926, 0.07436179398148149, 0.06844539351851853, 10.72027101851852, 1.4461132870370372, 0.08701903935185186, 0.09375503472222223, 0.20608988425925928, 2.0301000694444444, 349.5465040277778, 349.5432173726852, 349.5475984606482, 349.5465228009259, 349.54624295138893, 349.546117337963, 200.06914814814817, 1.8764517129629632 ], "xaxis": "x25", "yaxis": "y25" }, { "marker": { "color": "rgb(44, 160, 44)" }, "showlegend": false, "type": "histogram", "uid": "115c1854-7833-4f47-8302-9d26bb6abef3", "x": [ 1.1435136226851852 ], "xaxis": "x25", "yaxis": "y25" }, { "marker": { "color": "rgb(214, 39, 40)" }, "showlegend": false, "type": "histogram", "uid": "b0080312-dee9-4a28-9dde-f65dcd6e3a07", "x": [ 0.8393796990740741, 2.942347118055556, 0.30513957175925926, 5.982899849537037, 0.3911272800925926, 1.5017016666666667, 0.19550653935185183, 0.059555972222222225, 5.876935300925926, 0.18709101851851853, 0.9435467939814814, 1.0799120370370372, 1.5062245833333334, 0.16989356481481482, 2.5335116550925925, 0.05760177083333334, 7.521112453703704, 0.6328281481481483, 0.6812593981481482, 1.2101670023148148, 1.538078912037037, 3.8594648726851855, 0.16226043981481483, 0.9096273611111112, 1.8925094212962965, 0.6409916898148148, 0.9606450925925927, 2.7539970949074077, 1.4446409490740741, 17.731662743055555, 9.105731284722223, 0.10086562500000001, 0.6511788194444446, 8.954832291666667, 0.8160681018518519, 1.008210324074074, 3.0886693981481486, 3.7277022916666667, 1.1322710879629632, 26.09921980324074, 0.7469730671296297, 0.8963596412037037, 0.6889808101851852, 10.66455761574074, 9.542422650462964, 0.10661085648148148, 12.911633854166666, 11.392080682870372, 9.975229780092592, 0.03320025462962963, 21.90822570601852, 0.026584351851851852, 0.43628284722222227, 0.6968928356481482, 8.083771666666667, 2.7727853009259262, 1.2106303472222222, 0.2948339930555556, 2.598375787037037, 1.0499642824074074, 5.338199189814815, 1.8400799189814814, 10.804943877314816, 0.9825340046296297, 21.58783954861111, 1.7732069560185186, 1.7915407407407407, 4.942748831018519, 7.8870652199074085, 3.0712562500000002, 0.11845116898148149, 2.817408078703704, 1.7777973958333335, 0.6065380671296297, 14.850819016203705, 15.784122881944446, 0.19919303240740743, 0.47272067129629636, 0.9964747222222223 ], "xaxis": "x25", "yaxis": "y25" } ], "layout": { "barmode": "stack", "height": 1000, "showlegend": true, "title": "Medium Stats Scatterplot Matrix", "width": 1000, "xaxis": { "anchor": "y", "domain": [ 0, 0.16799999999999998 ] }, "xaxis10": { "anchor": "y10", "domain": [ 0.832, 1 ] }, "xaxis11": { "anchor": "y11", "domain": [ 0, 0.16799999999999998 ] }, "xaxis12": { "anchor": "y12", "domain": [ 0.208, 0.376 ] }, "xaxis13": { "anchor": "y13", "domain": [ 0.416, 0.584 ] }, "xaxis14": { "anchor": "y14", "domain": [ 0.624, 0.792 ] }, "xaxis15": { "anchor": "y15", "domain": [ 0.832, 1 ] }, "xaxis16": { "anchor": "y16", "domain": [ 0, 0.16799999999999998 ] }, "xaxis17": { "anchor": "y17", "domain": [ 0.208, 0.376 ] }, "xaxis18": { "anchor": "y18", "domain": [ 0.416, 0.584 ] }, "xaxis19": { "anchor": "y19", "domain": [ 0.624, 0.792 ] }, "xaxis2": { "anchor": "y2", "domain": [ 0.208, 0.376 ] }, "xaxis20": { "anchor": "y20", "domain": [ 0.832, 1 ] }, "xaxis21": { "anchor": "y21", "domain": [ 0, 0.16799999999999998 ], "title": "read_time" }, "xaxis22": { "anchor": "y22", "domain": [ 0.208, 0.376 ], "title": "claps" }, "xaxis23": { "anchor": "y23", "domain": [ 0.416, 0.584 ], "title": "word_count" }, "xaxis24": { "anchor": "y24", "domain": [ 0.624, 0.792 ], "title": "num_responses" }, "xaxis25": { "anchor": "y25", "domain": [ 0.832, 1 ], "title": "edit_days" }, "xaxis3": { "anchor": "y3", "domain": [ 0.416, 0.584 ] }, "xaxis4": { "anchor": "y4", "domain": [ 0.624, 0.792 ] }, "xaxis5": { "anchor": "y5", "domain": [ 0.832, 1 ] }, "xaxis6": { "anchor": "y6", "domain": [ 0, 0.16799999999999998 ] }, "xaxis7": { "anchor": "y7", "domain": [ 0.208, 0.376 ] }, "xaxis8": { "anchor": "y8", "domain": [ 0.416, 0.584 ] }, "xaxis9": { "anchor": "y9", "domain": [ 0.624, 0.792 ] }, "yaxis": { "anchor": "x", "domain": [ 0.848, 1 ], "title": "read_time" }, "yaxis10": { "anchor": "x10", "domain": [ 0.6359999999999999, 0.7879999999999999 ] }, "yaxis11": { "anchor": "x11", "domain": [ 0.424, 0.576 ], "title": "word_count" }, "yaxis12": { "anchor": "x12", "domain": [ 0.424, 0.576 ] }, "yaxis13": { "anchor": "x13", "domain": [ 0.424, 0.576 ] }, "yaxis14": { "anchor": "x14", "domain": [ 0.424, 0.576 ] }, "yaxis15": { "anchor": "x15", "domain": [ 0.424, 0.576 ] }, "yaxis16": { "anchor": "x16", "domain": [ 0.212, 0.364 ], "title": "num_responses" }, "yaxis17": { "anchor": "x17", "domain": [ 0.212, 0.364 ] }, "yaxis18": { "anchor": "x18", "domain": [ 0.212, 0.364 ] }, "yaxis19": { "anchor": "x19", "domain": [ 0.212, 0.364 ] }, "yaxis2": { "anchor": "x2", "domain": [ 0.848, 1 ] }, "yaxis20": { "anchor": "x20", "domain": [ 0.212, 0.364 ] }, "yaxis21": { "anchor": "x21", "domain": [ 0, 0.152 ], "title": "edit_days" }, "yaxis22": { "anchor": "x22", "domain": [ 0, 0.152 ] }, "yaxis23": { "anchor": "x23", "domain": [ 0, 0.152 ] }, "yaxis24": { "anchor": "x24", "domain": [ 0, 0.152 ] }, "yaxis25": { "anchor": "x25", "domain": [ 0, 0.152 ] }, "yaxis3": { "anchor": "x3", "domain": [ 0.848, 1 ] }, "yaxis4": { "anchor": "x4", "domain": [ 0.848, 1 ] }, "yaxis5": { "anchor": "x5", "domain": [ 0.848, 1 ] }, "yaxis6": { "anchor": "x6", "domain": [ 0.6359999999999999, 0.7879999999999999 ], "title": "claps" }, "yaxis7": { "anchor": "x7", "domain": [ 0.6359999999999999, 0.7879999999999999 ] }, "yaxis8": { "anchor": "x8", "domain": [ 0.6359999999999999, 0.7879999999999999 ] }, "yaxis9": { "anchor": "x9", "domain": [ 0.6359999999999999, 0.7879999999999999 ] } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figure = ff.create_scatterplotmatrix(df[['read_time', 'claps', 'word_count',\n", " 'num_responses', 'edit_days','publication']],\n", " index = 'publication', \n", " diag='histogram', \n", " size=8, width=1000, height=1000,\n", " title='Medium Stats Scatterplot Matrix')\n", "\n", "iplot(figure)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Conclusions\n", "\n", "In this notebook, we developed functions for rapidly retrieving and formatting Medium article statistics. These functions are meant to be used by anyone who wants to analyze their own (or my) Medium stats. \n", "\n", "In the next notebook, `Analysis`, we'll do a deep dive into the statistics both quantitatively and visually. We'll see if there are any insights waiting to be discovered in this data! " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "hide_input": false, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "277.391px" }, "toc_section_display": true, "toc_window_display": true }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }