Created
July 8, 2021 23:04
-
-
Save sparack/2be4ddd12b6d3e9c50181de6e63eb08c to your computer and use it in GitHub Desktop.
Notebook to demo Tweet counts v2 for building visualizations
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Building visualizations using Tweet counts\n", | |
| "\n", | |
| "In this workshop, we will learn how to build visualizations using the [Tweet counts](https://developer.twitter.com/en/docs/twitter-api/tweets/counts/introduction) functionality in the Twitter API v2\n", | |
| "\n", | |
| "Tweet counts gives you the volume of Tweets that matches a Twitter search query. In order to follow this tutorial, you need an approved developer account. Once you have a developer account, you will need a bearer token to connect to the Twitter API v2 to get the Tweet counts for a search term. [Follow these instructions](https://github.com/twitterdev/getting-started-with-the-twitter-api-v2-for-academic-research/blob/main/modules/4-getting-your-keys-and-token.md) for obtaining a bearer token.\n", | |
| "\n", | |
| "For this demo, we will be using the [Twarc](https://twarc-project.readthedocs.io/en/latest/twarc2/) library in Python to connect to the Twitter API v2 and the [plotly](https://plotly.com/python/) library for building visualizations.\n", | |
| "\n", | |
| "To install plotly, run the following in your terminal\n", | |
| "\n", | |
| "```bash\n", | |
| "pip3 install plotly\n", | |
| "```\n", | |
| "\n", | |
| "To install twarc, run the following in your terminal\n", | |
| "\n", | |
| "```bash\n", | |
| "pip3 install twarc\n", | |
| "```\n", | |
| "\n", | |
| "Once you have these libraries installed, import them. To display the JSON response from the Twitter API for Tweet counts, we will be using the json library." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 47, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "import plotly.graph_objects as go\n", | |
| "from twarc import Twarc2\n", | |
| "import json" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Next, setup the Twarc client (that you will use to get Tweet counts from the Twitter API v2) with your bearer token" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 48, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Replace with your own bearer token\n", | |
| "client = Twarc2(\n", | |
| " bearer_token=\"\")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Then, specify the query that you want Tweet counts for. Learn more about building queries [here](https://developer-staging.twitter.com/en/docs/twitter-api/tweets/counts/integrate/build-a-query)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 49, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Replace the query below with your own query\n", | |
| "query = \"#TwitterAPI\"" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Next, use the *counts_recent* method in twarc to get the Tweet counts for the search query for the last 7 days. The default aggregation of the data is at an hourly level. If you want data aggregated at day-level, specify that using the *granualrity* parameter" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 50, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "[\n", | |
| " {\n", | |
| " \"end\": \"2021-07-02T00:00:00.000Z\",\n", | |
| " \"start\": \"2021-07-01T22:57:15.000Z\",\n", | |
| " \"tweet_count\": 1\n", | |
| " },\n", | |
| " {\n", | |
| " \"end\": \"2021-07-03T00:00:00.000Z\",\n", | |
| " \"start\": \"2021-07-02T00:00:00.000Z\",\n", | |
| " \"tweet_count\": 36\n", | |
| " },\n", | |
| " {\n", | |
| " \"end\": \"2021-07-04T00:00:00.000Z\",\n", | |
| " \"start\": \"2021-07-03T00:00:00.000Z\",\n", | |
| " \"tweet_count\": 9\n", | |
| " },\n", | |
| " {\n", | |
| " \"end\": \"2021-07-05T00:00:00.000Z\",\n", | |
| " \"start\": \"2021-07-04T00:00:00.000Z\",\n", | |
| " \"tweet_count\": 4\n", | |
| " },\n", | |
| " {\n", | |
| " \"end\": \"2021-07-06T00:00:00.000Z\",\n", | |
| " \"start\": \"2021-07-05T00:00:00.000Z\",\n", | |
| " \"tweet_count\": 5\n", | |
| " },\n", | |
| " {\n", | |
| " \"end\": \"2021-07-07T00:00:00.000Z\",\n", | |
| " \"start\": \"2021-07-06T00:00:00.000Z\",\n", | |
| " \"tweet_count\": 12\n", | |
| " },\n", | |
| " {\n", | |
| " \"end\": \"2021-07-08T00:00:00.000Z\",\n", | |
| " \"start\": \"2021-07-07T00:00:00.000Z\",\n", | |
| " \"tweet_count\": 7\n", | |
| " },\n", | |
| " {\n", | |
| " \"end\": \"2021-07-08T22:57:15.000Z\",\n", | |
| " \"start\": \"2021-07-08T00:00:00.000Z\",\n", | |
| " \"tweet_count\": 10\n", | |
| " }\n", | |
| "]\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "# Get the recent Tweet counts using Twarc for your query by day\n", | |
| "search_results = client.counts_recent(query=query, granularity='day')\n", | |
| "\n", | |
| "for page in search_results:\n", | |
| " # Get the data object from the Tweet counts response which contains the daily Tweet count\n", | |
| " data = page['data']\n", | |
| " break\n", | |
| "\n", | |
| "print(json.dumps(data, indent=2))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "To display the Tweet counts in a bar graph, we will get the *start* date in a list called day to display on the x-axis and the corresponding *tweet_counts* in a list called tweet_counts to display on the y-axis" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 51, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "day = []\n", | |
| "tweet_counts = []\n", | |
| "\n", | |
| "for d in data:\n", | |
| " # Add the start date to display on x-axis\n", | |
| " day.append(d['start'][:10])\n", | |
| " # Add the daily Tweet counts to display on the y-axis\n", | |
| " tweet_counts.append(d['tweet_count'])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Next, we will create a Figure to display the bar chart (using the graph_objects in plotly)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 52, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Build a bar chart\n", | |
| "fig = go.Figure(data=[go.Bar(x=day, y=tweet_counts)])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Then, we will add appropriate titles for the x and y axes" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 53, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "application/vnd.plotly.v1+json": { | |
| "config": { | |
| "plotlyServerURL": "https://plot.ly" | |
| }, | |
| "data": [ | |
| { | |
| "type": "bar", | |
| "x": [ | |
| "2021-07-01", | |
| "2021-07-02", | |
| "2021-07-03", | |
| "2021-07-04", | |
| "2021-07-05", | |
| "2021-07-06", | |
| "2021-07-07", | |
| "2021-07-08" | |
| ], | |
| "y": [ | |
| 1, | |
| 36, | |
| 9, | |
| 4, | |
| 5, | |
| 12, | |
| 7, | |
| 10 | |
| ] | |
| } | |
| ], | |
| "layout": { | |
| "template": { | |
| "data": { | |
| "bar": [ | |
| { | |
| "error_x": { | |
| "color": "#2a3f5f" | |
| }, | |
| "error_y": { | |
| "color": "#2a3f5f" | |
| }, | |
| "marker": { | |
| "line": { | |
| "color": "#E5ECF6", | |
| "width": 0.5 | |
| } | |
| }, | |
| "type": "bar" | |
| } | |
| ], | |
| "barpolar": [ | |
| { | |
| "marker": { | |
| "line": { | |
| "color": "#E5ECF6", | |
| "width": 0.5 | |
| } | |
| }, | |
| "type": "barpolar" | |
| } | |
| ], | |
| "carpet": [ | |
| { | |
| "aaxis": { | |
| "endlinecolor": "#2a3f5f", | |
| "gridcolor": "white", | |
| "linecolor": "white", | |
| "minorgridcolor": "white", | |
| "startlinecolor": "#2a3f5f" | |
| }, | |
| "baxis": { | |
| "endlinecolor": "#2a3f5f", | |
| "gridcolor": "white", | |
| "linecolor": "white", | |
| "minorgridcolor": "white", | |
| "startlinecolor": "#2a3f5f" | |
| }, | |
| "type": "carpet" | |
| } | |
| ], | |
| "choropleth": [ | |
| { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| }, | |
| "type": "choropleth" | |
| } | |
| ], | |
| "contour": [ | |
| { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| }, | |
| "colorscale": [ | |
| [ | |
| 0, | |
| "#0d0887" | |
| ], | |
| [ | |
| 0.1111111111111111, | |
| "#46039f" | |
| ], | |
| [ | |
| 0.2222222222222222, | |
| "#7201a8" | |
| ], | |
| [ | |
| 0.3333333333333333, | |
| "#9c179e" | |
| ], | |
| [ | |
| 0.4444444444444444, | |
| "#bd3786" | |
| ], | |
| [ | |
| 0.5555555555555556, | |
| "#d8576b" | |
| ], | |
| [ | |
| 0.6666666666666666, | |
| "#ed7953" | |
| ], | |
| [ | |
| 0.7777777777777778, | |
| "#fb9f3a" | |
| ], | |
| [ | |
| 0.8888888888888888, | |
| "#fdca26" | |
| ], | |
| [ | |
| 1, | |
| "#f0f921" | |
| ] | |
| ], | |
| "type": "contour" | |
| } | |
| ], | |
| "contourcarpet": [ | |
| { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| }, | |
| "type": "contourcarpet" | |
| } | |
| ], | |
| "heatmap": [ | |
| { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| }, | |
| "colorscale": [ | |
| [ | |
| 0, | |
| "#0d0887" | |
| ], | |
| [ | |
| 0.1111111111111111, | |
| "#46039f" | |
| ], | |
| [ | |
| 0.2222222222222222, | |
| "#7201a8" | |
| ], | |
| [ | |
| 0.3333333333333333, | |
| "#9c179e" | |
| ], | |
| [ | |
| 0.4444444444444444, | |
| "#bd3786" | |
| ], | |
| [ | |
| 0.5555555555555556, | |
| "#d8576b" | |
| ], | |
| [ | |
| 0.6666666666666666, | |
| "#ed7953" | |
| ], | |
| [ | |
| 0.7777777777777778, | |
| "#fb9f3a" | |
| ], | |
| [ | |
| 0.8888888888888888, | |
| "#fdca26" | |
| ], | |
| [ | |
| 1, | |
| "#f0f921" | |
| ] | |
| ], | |
| "type": "heatmap" | |
| } | |
| ], | |
| "heatmapgl": [ | |
| { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| }, | |
| "colorscale": [ | |
| [ | |
| 0, | |
| "#0d0887" | |
| ], | |
| [ | |
| 0.1111111111111111, | |
| "#46039f" | |
| ], | |
| [ | |
| 0.2222222222222222, | |
| "#7201a8" | |
| ], | |
| [ | |
| 0.3333333333333333, | |
| "#9c179e" | |
| ], | |
| [ | |
| 0.4444444444444444, | |
| "#bd3786" | |
| ], | |
| [ | |
| 0.5555555555555556, | |
| "#d8576b" | |
| ], | |
| [ | |
| 0.6666666666666666, | |
| "#ed7953" | |
| ], | |
| [ | |
| 0.7777777777777778, | |
| "#fb9f3a" | |
| ], | |
| [ | |
| 0.8888888888888888, | |
| "#fdca26" | |
| ], | |
| [ | |
| 1, | |
| "#f0f921" | |
| ] | |
| ], | |
| "type": "heatmapgl" | |
| } | |
| ], | |
| "histogram": [ | |
| { | |
| "marker": { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| } | |
| }, | |
| "type": "histogram" | |
| } | |
| ], | |
| "histogram2d": [ | |
| { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| }, | |
| "colorscale": [ | |
| [ | |
| 0, | |
| "#0d0887" | |
| ], | |
| [ | |
| 0.1111111111111111, | |
| "#46039f" | |
| ], | |
| [ | |
| 0.2222222222222222, | |
| "#7201a8" | |
| ], | |
| [ | |
| 0.3333333333333333, | |
| "#9c179e" | |
| ], | |
| [ | |
| 0.4444444444444444, | |
| "#bd3786" | |
| ], | |
| [ | |
| 0.5555555555555556, | |
| "#d8576b" | |
| ], | |
| [ | |
| 0.6666666666666666, | |
| "#ed7953" | |
| ], | |
| [ | |
| 0.7777777777777778, | |
| "#fb9f3a" | |
| ], | |
| [ | |
| 0.8888888888888888, | |
| "#fdca26" | |
| ], | |
| [ | |
| 1, | |
| "#f0f921" | |
| ] | |
| ], | |
| "type": "histogram2d" | |
| } | |
| ], | |
| "histogram2dcontour": [ | |
| { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| }, | |
| "colorscale": [ | |
| [ | |
| 0, | |
| "#0d0887" | |
| ], | |
| [ | |
| 0.1111111111111111, | |
| "#46039f" | |
| ], | |
| [ | |
| 0.2222222222222222, | |
| "#7201a8" | |
| ], | |
| [ | |
| 0.3333333333333333, | |
| "#9c179e" | |
| ], | |
| [ | |
| 0.4444444444444444, | |
| "#bd3786" | |
| ], | |
| [ | |
| 0.5555555555555556, | |
| "#d8576b" | |
| ], | |
| [ | |
| 0.6666666666666666, | |
| "#ed7953" | |
| ], | |
| [ | |
| 0.7777777777777778, | |
| "#fb9f3a" | |
| ], | |
| [ | |
| 0.8888888888888888, | |
| "#fdca26" | |
| ], | |
| [ | |
| 1, | |
| "#f0f921" | |
| ] | |
| ], | |
| "type": "histogram2dcontour" | |
| } | |
| ], | |
| "mesh3d": [ | |
| { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| }, | |
| "type": "mesh3d" | |
| } | |
| ], | |
| "parcoords": [ | |
| { | |
| "line": { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| } | |
| }, | |
| "type": "parcoords" | |
| } | |
| ], | |
| "pie": [ | |
| { | |
| "automargin": true, | |
| "type": "pie" | |
| } | |
| ], | |
| "scatter": [ | |
| { | |
| "marker": { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| } | |
| }, | |
| "type": "scatter" | |
| } | |
| ], | |
| "scatter3d": [ | |
| { | |
| "line": { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| } | |
| }, | |
| "marker": { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| } | |
| }, | |
| "type": "scatter3d" | |
| } | |
| ], | |
| "scattercarpet": [ | |
| { | |
| "marker": { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| } | |
| }, | |
| "type": "scattercarpet" | |
| } | |
| ], | |
| "scattergeo": [ | |
| { | |
| "marker": { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| } | |
| }, | |
| "type": "scattergeo" | |
| } | |
| ], | |
| "scattergl": [ | |
| { | |
| "marker": { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| } | |
| }, | |
| "type": "scattergl" | |
| } | |
| ], | |
| "scattermapbox": [ | |
| { | |
| "marker": { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| } | |
| }, | |
| "type": "scattermapbox" | |
| } | |
| ], | |
| "scatterpolar": [ | |
| { | |
| "marker": { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| } | |
| }, | |
| "type": "scatterpolar" | |
| } | |
| ], | |
| "scatterpolargl": [ | |
| { | |
| "marker": { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| } | |
| }, | |
| "type": "scatterpolargl" | |
| } | |
| ], | |
| "scatterternary": [ | |
| { | |
| "marker": { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| } | |
| }, | |
| "type": "scatterternary" | |
| } | |
| ], | |
| "surface": [ | |
| { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| }, | |
| "colorscale": [ | |
| [ | |
| 0, | |
| "#0d0887" | |
| ], | |
| [ | |
| 0.1111111111111111, | |
| "#46039f" | |
| ], | |
| [ | |
| 0.2222222222222222, | |
| "#7201a8" | |
| ], | |
| [ | |
| 0.3333333333333333, | |
| "#9c179e" | |
| ], | |
| [ | |
| 0.4444444444444444, | |
| "#bd3786" | |
| ], | |
| [ | |
| 0.5555555555555556, | |
| "#d8576b" | |
| ], | |
| [ | |
| 0.6666666666666666, | |
| "#ed7953" | |
| ], | |
| [ | |
| 0.7777777777777778, | |
| "#fb9f3a" | |
| ], | |
| [ | |
| 0.8888888888888888, | |
| "#fdca26" | |
| ], | |
| [ | |
| 1, | |
| "#f0f921" | |
| ] | |
| ], | |
| "type": "surface" | |
| } | |
| ], | |
| "table": [ | |
| { | |
| "cells": { | |
| "fill": { | |
| "color": "#EBF0F8" | |
| }, | |
| "line": { | |
| "color": "white" | |
| } | |
| }, | |
| "header": { | |
| "fill": { | |
| "color": "#C8D4E3" | |
| }, | |
| "line": { | |
| "color": "white" | |
| } | |
| }, | |
| "type": "table" | |
| } | |
| ] | |
| }, | |
| "layout": { | |
| "annotationdefaults": { | |
| "arrowcolor": "#2a3f5f", | |
| "arrowhead": 0, | |
| "arrowwidth": 1 | |
| }, | |
| "autotypenumbers": "strict", | |
| "coloraxis": { | |
| "colorbar": { | |
| "outlinewidth": 0, | |
| "ticks": "" | |
| } | |
| }, | |
| "colorscale": { | |
| "diverging": [ | |
| [ | |
| 0, | |
| "#8e0152" | |
| ], | |
| [ | |
| 0.1, | |
| "#c51b7d" | |
| ], | |
| [ | |
| 0.2, | |
| "#de77ae" | |
| ], | |
| [ | |
| 0.3, | |
| "#f1b6da" | |
| ], | |
| [ | |
| 0.4, | |
| "#fde0ef" | |
| ], | |
| [ | |
| 0.5, | |
| "#f7f7f7" | |
| ], | |
| [ | |
| 0.6, | |
| "#e6f5d0" | |
| ], | |
| [ | |
| 0.7, | |
| "#b8e186" | |
| ], | |
| [ | |
| 0.8, | |
| "#7fbc41" | |
| ], | |
| [ | |
| 0.9, | |
| "#4d9221" | |
| ], | |
| [ | |
| 1, | |
| "#276419" | |
| ] | |
| ], | |
| "sequential": [ | |
| [ | |
| 0, | |
| "#0d0887" | |
| ], | |
| [ | |
| 0.1111111111111111, | |
| "#46039f" | |
| ], | |
| [ | |
| 0.2222222222222222, | |
| "#7201a8" | |
| ], | |
| [ | |
| 0.3333333333333333, | |
| "#9c179e" | |
| ], | |
| [ | |
| 0.4444444444444444, | |
| "#bd3786" | |
| ], | |
| [ | |
| 0.5555555555555556, | |
| "#d8576b" | |
| ], | |
| [ | |
| 0.6666666666666666, | |
| "#ed7953" | |
| ], | |
| [ | |
| 0.7777777777777778, | |
| "#fb9f3a" | |
| ], | |
| [ | |
| 0.8888888888888888, | |
| "#fdca26" | |
| ], | |
| [ | |
| 1, | |
| "#f0f921" | |
| ] | |
| ], | |
| "sequentialminus": [ | |
| [ | |
| 0, | |
| "#0d0887" | |
| ], | |
| [ | |
| 0.1111111111111111, | |
| "#46039f" | |
| ], | |
| [ | |
| 0.2222222222222222, | |
| "#7201a8" | |
| ], | |
| [ | |
| 0.3333333333333333, | |
| "#9c179e" | |
| ], | |
| [ | |
| 0.4444444444444444, | |
| "#bd3786" | |
| ], | |
| [ | |
| 0.5555555555555556, | |
| "#d8576b" | |
| ], | |
| [ | |
| 0.6666666666666666, | |
| "#ed7953" | |
| ], | |
| [ | |
| 0.7777777777777778, | |
| "#fb9f3a" | |
| ], | |
| [ | |
| 0.8888888888888888, | |
| "#fdca26" | |
| ], | |
| [ | |
| 1, | |
| "#f0f921" | |
| ] | |
| ] | |
| }, | |
| "colorway": [ | |
| "#636efa", | |
| "#EF553B", | |
| "#00cc96", | |
| "#ab63fa", | |
| "#FFA15A", | |
| "#19d3f3", | |
| "#FF6692", | |
| "#B6E880", | |
| "#FF97FF", | |
| "#FECB52" | |
| ], | |
| "font": { | |
| "color": "#2a3f5f" | |
| }, | |
| "geo": { | |
| "bgcolor": "white", | |
| "lakecolor": "white", | |
| "landcolor": "#E5ECF6", | |
| "showlakes": true, | |
| "showland": true, | |
| "subunitcolor": "white" | |
| }, | |
| "hoverlabel": { | |
| "align": "left" | |
| }, | |
| "hovermode": "closest", | |
| "mapbox": { | |
| "style": "light" | |
| }, | |
| "paper_bgcolor": "white", | |
| "plot_bgcolor": "#E5ECF6", | |
| "polar": { | |
| "angularaxis": { | |
| "gridcolor": "white", | |
| "linecolor": "white", | |
| "ticks": "" | |
| }, | |
| "bgcolor": "#E5ECF6", | |
| "radialaxis": { | |
| "gridcolor": "white", | |
| "linecolor": "white", | |
| "ticks": "" | |
| } | |
| }, | |
| "scene": { | |
| "xaxis": { | |
| "backgroundcolor": "#E5ECF6", | |
| "gridcolor": "white", | |
| "gridwidth": 2, | |
| "linecolor": "white", | |
| "showbackground": true, | |
| "ticks": "", | |
| "zerolinecolor": "white" | |
| }, | |
| "yaxis": { | |
| "backgroundcolor": "#E5ECF6", | |
| "gridcolor": "white", | |
| "gridwidth": 2, | |
| "linecolor": "white", | |
| "showbackground": true, | |
| "ticks": "", | |
| "zerolinecolor": "white" | |
| }, | |
| "zaxis": { | |
| "backgroundcolor": "#E5ECF6", | |
| "gridcolor": "white", | |
| "gridwidth": 2, | |
| "linecolor": "white", | |
| "showbackground": true, | |
| "ticks": "", | |
| "zerolinecolor": "white" | |
| } | |
| }, | |
| "shapedefaults": { | |
| "line": { | |
| "color": "#2a3f5f" | |
| } | |
| }, | |
| "ternary": { | |
| "aaxis": { | |
| "gridcolor": "white", | |
| "linecolor": "white", | |
| "ticks": "" | |
| }, | |
| "baxis": { | |
| "gridcolor": "white", | |
| "linecolor": "white", | |
| "ticks": "" | |
| }, | |
| "bgcolor": "#E5ECF6", | |
| "caxis": { | |
| "gridcolor": "white", | |
| "linecolor": "white", | |
| "ticks": "" | |
| } | |
| }, | |
| "title": { | |
| "x": 0.05 | |
| }, | |
| "xaxis": { | |
| "automargin": true, | |
| "gridcolor": "white", | |
| "linecolor": "white", | |
| "ticks": "", | |
| "title": { | |
| "standoff": 15 | |
| }, | |
| "zerolinecolor": "white", | |
| "zerolinewidth": 2 | |
| }, | |
| "yaxis": { | |
| "automargin": true, | |
| "gridcolor": "white", | |
| "linecolor": "white", | |
| "ticks": "", | |
| "title": { | |
| "standoff": 15 | |
| }, | |
| "zerolinecolor": "white", | |
| "zerolinewidth": 2 | |
| } | |
| } | |
| }, | |
| "title": { | |
| "text": "Tweets by day for #TwitterAPI" | |
| }, | |
| "xaxis": { | |
| "title": { | |
| "text": "Time Period" | |
| } | |
| }, | |
| "yaxis": { | |
| "title": { | |
| "text": "Tweet Counts" | |
| } | |
| } | |
| } | |
| }, | |
| "text/html": [ | |
| "<div> <div id=\"d3b77564-d576-4708-854e-53f822b90575\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div> <script type=\"text/javascript\"> require([\"plotly\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"d3b77564-d576-4708-854e-53f822b90575\")) { Plotly.newPlot( \"d3b77564-d576-4708-854e-53f822b90575\", [{\"type\": \"bar\", \"x\": [\"2021-07-01\", \"2021-07-02\", \"2021-07-03\", \"2021-07-04\", \"2021-07-05\", \"2021-07-06\", \"2021-07-07\", \"2021-07-08\"], \"y\": [1, 36, 9, 4, 5, 12, 7, 10]}], {\"template\": {\"data\": {\"bar\": [{\"error_x\": {\"color\": \"#2a3f5f\"}, \"error_y\": {\"color\": \"#2a3f5f\"}, \"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"bar\"}], \"barpolar\": [{\"marker\": {\"line\": {\"color\": \"#E5ECF6\", \"width\": 0.5}}, \"type\": \"barpolar\"}], \"carpet\": [{\"aaxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"baxis\": {\"endlinecolor\": \"#2a3f5f\", \"gridcolor\": \"white\", \"linecolor\": \"white\", \"minorgridcolor\": \"white\", \"startlinecolor\": \"#2a3f5f\"}, \"type\": \"carpet\"}], \"choropleth\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"choropleth\"}], \"contour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"contour\"}], \"contourcarpet\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"contourcarpet\"}], \"heatmap\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmap\"}], \"heatmapgl\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"heatmapgl\"}], \"histogram\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"histogram\"}], \"histogram2d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2d\"}], \"histogram2dcontour\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"histogram2dcontour\"}], \"mesh3d\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"type\": \"mesh3d\"}], \"parcoords\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"parcoords\"}], \"pie\": [{\"automargin\": true, \"type\": \"pie\"}], \"scatter\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter\"}], \"scatter3d\": [{\"line\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatter3d\"}], \"scattercarpet\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattercarpet\"}], \"scattergeo\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergeo\"}], \"scattergl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattergl\"}], \"scattermapbox\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scattermapbox\"}], \"scatterpolar\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolar\"}], \"scatterpolargl\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterpolargl\"}], \"scatterternary\": [{\"marker\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"type\": \"scatterternary\"}], \"surface\": [{\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}, \"colorscale\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"type\": \"surface\"}], \"table\": [{\"cells\": {\"fill\": {\"color\": \"#EBF0F8\"}, \"line\": {\"color\": \"white\"}}, \"header\": {\"fill\": {\"color\": \"#C8D4E3\"}, \"line\": {\"color\": \"white\"}}, \"type\": \"table\"}]}, \"layout\": {\"annotationdefaults\": {\"arrowcolor\": \"#2a3f5f\", \"arrowhead\": 0, \"arrowwidth\": 1}, \"autotypenumbers\": \"strict\", \"coloraxis\": {\"colorbar\": {\"outlinewidth\": 0, \"ticks\": \"\"}}, \"colorscale\": {\"diverging\": [[0, \"#8e0152\"], [0.1, \"#c51b7d\"], [0.2, \"#de77ae\"], [0.3, \"#f1b6da\"], [0.4, \"#fde0ef\"], [0.5, \"#f7f7f7\"], [0.6, \"#e6f5d0\"], [0.7, \"#b8e186\"], [0.8, \"#7fbc41\"], [0.9, \"#4d9221\"], [1, \"#276419\"]], \"sequential\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]], \"sequentialminus\": [[0.0, \"#0d0887\"], [0.1111111111111111, \"#46039f\"], [0.2222222222222222, \"#7201a8\"], [0.3333333333333333, \"#9c179e\"], [0.4444444444444444, \"#bd3786\"], [0.5555555555555556, \"#d8576b\"], [0.6666666666666666, \"#ed7953\"], [0.7777777777777778, \"#fb9f3a\"], [0.8888888888888888, \"#fdca26\"], [1.0, \"#f0f921\"]]}, \"colorway\": [\"#636efa\", \"#EF553B\", \"#00cc96\", \"#ab63fa\", \"#FFA15A\", \"#19d3f3\", \"#FF6692\", \"#B6E880\", \"#FF97FF\", \"#FECB52\"], \"font\": {\"color\": \"#2a3f5f\"}, \"geo\": {\"bgcolor\": \"white\", \"lakecolor\": \"white\", \"landcolor\": \"#E5ECF6\", \"showlakes\": true, \"showland\": true, \"subunitcolor\": \"white\"}, \"hoverlabel\": {\"align\": \"left\"}, \"hovermode\": \"closest\", \"mapbox\": {\"style\": \"light\"}, \"paper_bgcolor\": \"white\", \"plot_bgcolor\": \"#E5ECF6\", \"polar\": {\"angularaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"radialaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"scene\": {\"xaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"yaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}, \"zaxis\": {\"backgroundcolor\": \"#E5ECF6\", \"gridcolor\": \"white\", \"gridwidth\": 2, \"linecolor\": \"white\", \"showbackground\": true, \"ticks\": \"\", \"zerolinecolor\": \"white\"}}, \"shapedefaults\": {\"line\": {\"color\": \"#2a3f5f\"}}, \"ternary\": {\"aaxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"baxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}, \"bgcolor\": \"#E5ECF6\", \"caxis\": {\"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\"}}, \"title\": {\"x\": 0.05}, \"xaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}, \"yaxis\": {\"automargin\": true, \"gridcolor\": \"white\", \"linecolor\": \"white\", \"ticks\": \"\", \"title\": {\"standoff\": 15}, \"zerolinecolor\": \"white\", \"zerolinewidth\": 2}}}, \"title\": {\"text\": \"Tweets by day for #TwitterAPI\"}, \"xaxis\": {\"title\": {\"text\": \"Time Period\"}}, \"yaxis\": {\"title\": {\"text\": \"Tweet Counts\"}}}, {\"responsive\": true} ).then(function(){\n", | |
| " \n", | |
| "var gd = document.getElementById('d3b77564-d576-4708-854e-53f822b90575');\n", | |
| "var x = new MutationObserver(function (mutations, observer) {{\n", | |
| " var display = window.getComputedStyle(gd).display;\n", | |
| " if (!display || display === 'none') {{\n", | |
| " console.log([gd, 'removed!']);\n", | |
| " Plotly.purge(gd);\n", | |
| " observer.disconnect();\n", | |
| " }}\n", | |
| "}});\n", | |
| "\n", | |
| "// Listen for the removal of the full notebook cells\n", | |
| "var notebookContainer = gd.closest('#notebook-container');\n", | |
| "if (notebookContainer) {{\n", | |
| " x.observe(notebookContainer, {childList: true});\n", | |
| "}}\n", | |
| "\n", | |
| "// Listen for the clearing of the current output cell\n", | |
| "var outputEl = gd.closest('.output');\n", | |
| "if (outputEl) {{\n", | |
| " x.observe(outputEl, {childList: true});\n", | |
| "}}\n", | |
| "\n", | |
| " }) }; }); </script> </div>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "# Add the titles\n", | |
| "fig.update_layout(xaxis_title=\"Time Period\", yaxis_title=\"Tweet Counts\",\n", | |
| " title_text='Tweets by day for {}'.format(query))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "**Note:** When running the code on your local machine (outside of this notebook), you will also have to run\n", | |
| "\n", | |
| "```python\n", | |
| "fig.show()\n", | |
| "```\n", | |
| "\n", | |
| "to see the visualization, which will look like:\n", | |
| "\n", | |
| "\n", | |
| "\n", | |
| "In addition to bar charts, you can also build line charts etc. using Plotly. Try different queries to see the different results.\n", | |
| "\n", | |
| "Got feedback? Reach out on Twitter [@suhemparack](https://twitter.com/suhemparack)" | |
| ] | |
| } | |
| ], | |
| "metadata": { | |
| "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.7.5" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 4 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment