! pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
Collecting google-api-python-client
Downloading google_api_python_client-2.5.0-py2.py3-none-any.whl (7.1 MB)
|████████████████████████████████| 7.1 MB 14.3 MB/s
Collecting google-auth-httplib2
Downloading google_auth_httplib2-0.1.0-py2.py3-none-any.whl (9.3 kB)
Requirement already satisfied: google-auth-oauthlib in /shared-libs/python3.7/py/lib/python3.7/site-packages (0.4.4)
Requirement already satisfied: google-auth<2dev,>=1.16.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from google-api-python-client) (1.30.0)
Requirement already satisfied: six<2dev,>=1.13.0 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from google-api-python-client) (1.16.0)
Collecting uritemplate<4dev,>=3.0.0
Downloading uritemplate-3.0.1-py2.py3-none-any.whl (15 kB)
Requirement already satisfied: google-api-core<2dev,>=1.21.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from google-api-python-client) (1.26.3)
Collecting httplib2<1dev,>=0.15.0
Downloading httplib2-0.19.1-py3-none-any.whl (95 kB)
|████████████████████████████████| 95 kB 10.4 MB/s
Requirement already satisfied: pytz in /shared-libs/python3.7/py/lib/python3.7/site-packages (from google-api-core<2dev,>=1.21.0->google-api-python-client) (2021.1)
Requirement already satisfied: requests<3.0.0dev,>=2.18.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from google-api-core<2dev,>=1.21.0->google-api-python-client) (2.25.1)
Requirement already satisfied: packaging>=14.3 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from google-api-core<2dev,>=1.21.0->google-api-python-client) (20.9)
Requirement already satisfied: googleapis-common-protos<2.0dev,>=1.6.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from google-api-core<2dev,>=1.21.0->google-api-python-client) (1.53.0)
Requirement already satisfied: protobuf>=3.12.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from google-api-core<2dev,>=1.21.0->google-api-python-client) (3.15.8)
Requirement already satisfied: setuptools>=40.3.0 in /root/venv/lib/python3.7/site-packages (from google-api-core<2dev,>=1.21.0->google-api-python-client) (56.0.0)
Requirement already satisfied: pyasn1-modules>=0.2.1 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from google-auth<2dev,>=1.16.0->google-api-python-client) (0.2.8)
Requirement already satisfied: rsa<5,>=3.1.4 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from google-auth<2dev,>=1.16.0->google-api-python-client) (4.7.2)
Requirement already satisfied: cachetools<5.0,>=2.0.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from google-auth<2dev,>=1.16.0->google-api-python-client) (4.2.2)
Requirement already satisfied: pyparsing<3,>=2.4.2 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from httplib2<1dev,>=0.15.0->google-api-python-client) (2.4.7)
Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from pyasn1-modules>=0.2.1->google-auth<2dev,>=1.16.0->google-api-python-client) (0.4.8)
Requirement already satisfied: chardet<5,>=3.0.2 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from requests<3.0.0dev,>=2.18.0->google-api-core<2dev,>=1.21.0->google-api-python-client) (3.0.4)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from requests<3.0.0dev,>=2.18.0->google-api-core<2dev,>=1.21.0->google-api-python-client) (1.26.4)
Requirement already satisfied: certifi>=2017.4.17 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from requests<3.0.0dev,>=2.18.0->google-api-core<2dev,>=1.21.0->google-api-python-client) (2020.12.5)
Requirement already satisfied: idna<3,>=2.5 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from requests<3.0.0dev,>=2.18.0->google-api-core<2dev,>=1.21.0->google-api-python-client) (2.10)
Requirement already satisfied: requests-oauthlib>=0.7.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from google-auth-oauthlib) (1.3.0)
Requirement already satisfied: oauthlib>=3.0.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib) (3.1.0)
Installing collected packages: httplib2, uritemplate, google-auth-httplib2, google-api-python-client
Successfully installed google-api-python-client-2.5.0 google-auth-httplib2-0.1.0 httplib2-0.19.1 uritemplate-3.0.1
WARNING: You are using pip version 21.1.1; however, version 21.1.2 is available.
You should consider upgrading via the '/root/venv/bin/python -m pip install --upgrade pip' command.
import os
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from googleapiclient.discovery import build
API_KEY=os.environ["API_KEY"]
channel_id="UCMo9XBmvZ7EobpH4fYp9TNA"
youtube = build('youtube', 'v3', developerKey=API_KEY)
print(API_KEY)
AIzaSyBcx3GCJVcoqvKnAODZNM5lafv3aFdaQxI
# Function to get the channels stats
# It will also contain the upload playlist ID we can use to grab videos.
def get_channel_stats(youtube, channel_id):
request = youtube.channels().list(
part="snippet,contentDetails,statistics",
id=channel_id
)
response = request.execute()
return response['items']
# This will get us a list of videos from a playlist.
# Note a page of results has a max value of 50 so we will
# need to loop over our results with a pageToken
def get_video_list(youtube, upload_id):
video_list = []
request = youtube.playlistItems().list(
part="snippet,contentDetails",
playlistId=upload_id,
maxResults=50
)
next_page = True
while next_page:
response = request.execute()
data = response['items']
for video in data:
video_id = video['contentDetails']['videoId']
if video_id not in video_list:
video_list.append(video_id)
# Do we have more pages?
if 'nextPageToken' in response.keys():
next_page = True
request = youtube.playlistItems().list(
part="snippet,contentDetails",
playlistId=upload_id,
pageToken=response['nextPageToken'],
maxResults=50
)
else:
next_page = False
return video_list
# Once we have our video list we can pass it to this function to get details.
# Again we have a max of 50 at a time so we will use a for loop to break up our list.
def get_video_details(youtube, video_list):
stats_list=[]
# Can only get 50 videos at a time.
for i in range(0, len(video_list), 50):
request= youtube.videos().list(
part="snippet,contentDetails,statistics",
id=video_list[i:i+50]
)
data = request.execute()
for video in data['items']:
title=video['snippet']['title']
published=video['snippet']['publishedAt']
description=video['snippet']['description']
tag_count= len(video['snippet']['tags'])
view_count=video['statistics'].get('viewCount',0)
like_count=video['statistics'].get('likeCount',0)
dislike_count=video['statistics'].get('dislikeCount',0)
comment_count=video['statistics'].get('commentCount',0)
stats_dict=dict(title=title, description=description, published=published, tag_count=tag_count, view_count=view_count, like_count=like_count, dislike_count=dislike_count, comment_count=comment_count)
stats_list.append(stats_dict)
return stats_list
channel_stats = get_channel_stats(youtube, channel_id)
upload_id = channel_stats[0]['contentDetails']['relatedPlaylists']['uploads']
upload_id
video_list = get_video_list(youtube, upload_id)
video_data = get_video_details(youtube, video_list)
df=pd.DataFrame(video_data)
df['title_length'] = df['title'].str.len()
df["view_count"] = pd.to_numeric(df["view_count"])
df["like_count"] = pd.to_numeric(df["like_count"])
df["dislike_count"] = pd.to_numeric(df["dislike_count"])
df["comment_count"] = pd.to_numeric(df["comment_count"])
# reaction used later add up likes + dislikes + comments
df["reactions"] = df["like_count"] + df["dislike_count"] + df["comment_count"] + df["comment_count"]
df.to_csv("GMM-Data.csv")
df.head()
# Histogram of tag count.
chart = sns.distplot( a=df["tag_count"], hist=True, kde=False, rug=False )
chart.set(xlabel='Number of Tags Used', ylabel='Occurrences')
/shared-libs/python3.7/py/lib/python3.7/site-packages/seaborn/distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).
warnings.warn(msg, FutureWarning)
chart = sns.distplot( a=df["title_length"], hist=True, kde=False, rug=False )
chart.set(xlabel='Title Length', ylabel='Occurrences')
df_highest_views = df.nlargest(10, 'view_count')
df_highest_views['title'] = df_highest_views['title'].str[:40]
df_highest_views['view_count_millions'] = df_highest_views['view_count'] / 1000000
df_highest_views
sns.set(rc={'figure.figsize':(20,5)})
plot = sns.barplot(x="view_count_millions", y="title", data=df_highest_views, palette="bright")
plot.set(xlabel='Millions of Views', ylabel='')
plot.set_title('Most Viewed Videos')
plt.xlim(20, 32)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3114 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3135 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3149 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3122 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3111 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3120 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3134 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3118 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3143 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3126 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3125 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3074 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3095 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3137 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3098 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3147 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3129 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3108 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3114 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3135 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3149 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3122 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3111 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3120 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3134 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3118 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3143 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3126 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3125 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3074 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3095 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3137 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3098 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3147 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3129 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3108 missing from current font.
font.set_text(s, 0, flags=flags)
# Most Interations ( Like + Dislikes + Comments)
df_highest_reactions = df.nlargest(10, 'reactions')
df_highest_reactions['title'] = df_highest_reactions['title'].str[:40]
df_highest_reactions['reactions'] = df_highest_reactions['reactions'] / 1000
df_highest_reactions
sns.set(rc={'figure.figsize':(20,5)})
plot = sns.barplot(y="title", x="reactions", data=df_highest_reactions, palette="bright")
plot.set(xlabel='Thousands of Reactions', ylabel='')
plt.xticks(rotation=45)
plot.set_title('Most Video Reactions')
plt.xlim(300, 700)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3114 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3135 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3149 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3122 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3111 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3120 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3134 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3118 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3143 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3126 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3125 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3074 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3095 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3137 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3098 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3147 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3129 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 3108 missing from current font.
font.set_text(s, 0.0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3114 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3135 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3149 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3122 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3111 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3120 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3134 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3118 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3143 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3126 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3125 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3074 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3095 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3137 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3098 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3147 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3129 missing from current font.
font.set_text(s, 0, flags=flags)
/shared-libs/python3.7/py/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:203: RuntimeWarning: Glyph 3108 missing from current font.
font.set_text(s, 0, flags=flags)