Für das Archiv von Mustdon wird empfohlen, auf Das obige [Python] Post-Datums- und Zeitstreudiagramm im Archiv von Mastodon ... zu verweisen. Insbesondere werde ich diesmal den Teil des Lesens aus der JSON-Datei und des Speicherns des Toot-Inhalts in Objekten weglassen.
at = []
for object in objects:
if '@' in object:
at.append(object)
name = []
others = []
for a in at:
while '@' in a:
if ' ' in a:
name.append(a[1:a.index(' ')])
a=a[a.index(' ')+1:]
else:
others.append(a)
break
len(name)
Ich habe das Tag aus dem Toot-Inhalt entfernt, aber da @onekodate am Anfang bleibt, werde ich zuerst nach dem Tag suchen, das @ aus dem Toot-Inhalt enthält. Als nächstes holen Sie von der zweiten in die leere nach der ID. Beachten Sie die Toots, die diesen Platz nicht haben, und die Toots, die mehrere Ziele haben. Toots ohne Leerzeichen werden von anderen gesammelt, daher ist es eine gute Idee, sie zu überprüfen. Wenn es Erwähnungen gibt, sind sie normalerweise leer, daher werde ich sie weglassen. Wiederholen Sie den Vorgang auch mit der while-Anweisung, um den Vorgang zu wiederholen, solange im Rest @ vorhanden ist, um nicht mehrere Ziele zu verpassen. Dadurch werden die Ziel-IDs erfasst.
import pandas as pd
name = pd.Series(name)
namerank = name.value_counts()
print(namerank[0:29])
Da value.counts () von pandas.Series praktisch ist, habe ich es absichtlich konvertiert, um es zu verwenden, und es wurde entwickelt, um die 30 besten Personen anzuzeigen.
import json
import numpy as np
file = 'likes.json'
with open(file, 'r', encoding='utf-8') as fi:
novels = json.load(fi)
for novel in novels:
likes = np.array(novels[novel])
len(likes)
Laden Sie liks.json, das die Ziel-URL des Favoriten enthält, genauso wie Sie outbox.json zu Beginn des vorherigen Zeitraums geladen haben.
favuser = []
others = []
for like in likes:
if 'users' in like and 'statuses' in like:
favuser.append(like[like.index('users')+6:like.index('statuses')-1])
else:
others.append(like)
len(favuser)
In Likes wird die URL des Ziels der Fabo wie https://mstdn.jp/users/onekodate/statuses/99502681496689830 geschrieben, und die URL von Mastodon enthält die ID-Informationen. Bitte nehmen Sie sie heraus. Sie können erkennen, wer Sie sind, aber hier gibt es zwei Probleme. ・ Misskey- und Pleroma-URLs enthalten keine ID-Informationen ・ Manchmal ist das mysteriöse Zeichen string'tag: pawoo.net, 2017-09-15: objectId = 41135378: objectType = Status in der URL enthalten. Ich kann nichts gegen diese beiden tun, also werde ich sie für andere beiseite legen. Daher enthält die URL "Benutzer" und "Status", und die Zeichenfolge zwischen ihnen wird als ID abgerufen.
import pandas as pd
fav = pd.Series(favuser)
favrank = fav.value_counts()
print(favrank[0:29])
Dies ist genau das gleiche wie bei der Beantwortung. Sie müssen nicht jedes Mal Pandas importieren.
follower = np.zeros((10,len(favuser)))
for i in range(len(favuser)):
for j in range(10):
if favuser[i]==favrank.index[j]:
follower[j][i:len(favuser)] = follower[j][i] + 1
Ich werde den Übergang der Anzahl der Fabs für die 10 angesehenen Leute grafisch darstellen, die viele Fabs von mir haben. Es gibt keine Zeitdaten in lik.json, aber sie sind wahrscheinlich in chronologischer Reihenfolge angeordnet. Nehmen wir also an, dass die Reihenfolge als Zeit betrachtet werden kann. Erstellen Sie ein zweidimensionales Array mit numpy und zählen Sie mit Gewalt. Wenn Sie nur ein Diagramm zeichnen möchten, sollten Sie es meines Erachtens jedes Mal schreiben, ohne ein zweidimensionales Array zu erstellen.
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10, 5), dpi=200)
for j in range(10):
plt.plot(range(len(favuser)),follower[j],label=favrank.index[j])
plt.legend(bbox_to_anchor=(1, 1), loc='upper left', borderaxespad=0, fontsize=18)
fig.savefig('favtime.png')
Hier ist der mit der Legende entfernt. Die Nummer eins war überwältigend, aber es scheint, dass es in letzter Zeit träge war, sicherlich habe ich es in letzter Zeit nicht gesehen. Die hellblaue Person auf Platz 10 scheint in letzter Zeit träge gewesen zu sein, weil sie wiedergeboren wurde.
Ich dachte, es wäre interessant, die Beziehung zu meinen Anhängern zu sehen, also schaute ich mir die Antworten an. Sie können wahrscheinlich auf die gleiche Weise steigern. Wenn Sie diese Person sehen können, wird es ärgerlich und ärgerlich sein, aber wir freuen uns auf Ihre Verwendung.
Recommended Posts