Goodwill de graphique à barres empilées
J'ai collecté la quantité de spacha du 2020/1/1 au 2020/6/30 et je l'ai regardée
--Unité de bureau
Veuillez consulter les articles de référence répertoriés dans les articles précédents pour savoir comment obtenir des données de commentaires. La structure des données de commentaire est décrite en détail dans les articles suivants. https://zetta777.hatenablog.com/entry/2019/11/09/200816
Selon cette structure, les données de la quantité d'espaces sont acquises.
De nombreuses devises autres que le yen japonais sont lancées sur Spacha. Ici, pour la devise qui existait sur les données que j'ai utilisées, spécifiez le taux de change avec ** valeur fixe **.
currency_to_rate = {'¥': 1, 'SGD': 80, 'CA$': 80, 'NT$': 3.65, '$': 110, 'A$': 75, '€': 125, 'PHP': 2.15, 'MX$': 5, \
'HK$': 14, '₩': 0.1, 'RUB': 1.5, 'NZ$': 70, 'ARS': 1.5, 'CHF': 114, '£': 134, 'PEN': 30, 'CLP': 0.13, 'PLN': 27.5, \
'HUF': 0.35, 'R$': 20, 'RON': 25, '₹': 1.43, 'SEK': 11.5, 'NOK': 11.5, 'UYU': 2.5, 'BOB': 15.5, 'BYN': 45, \
'CRC': 0.185, 'ZAR': 6.5, 'ISK': 0.77, 'COP': 0.0295, 'DKK': 16.25, 'PYG': 0.0156, 'CZK': 4.55, 'GTQ': 13.94, \
'HRK': 16.29, 'HNL': 4.3, 'UGX': 0.029, 'RSD': 1.04, 'BGN': 62, 'NIO': 3.1, 'DOP': 1.82}
Bien sûr, puisqu'il s'agit d'une valeur fixe, je pense qu'il y a un décalage avec le taux au moment où le spacha a été lancé, mais je ne considère pas cet effet ici. Le montant de spacha est décrit dans purchaseAmountText du fichier json du commentaire YouTube, et il est exprimé par "information sur la devise + montant" comme "100 ¥" pour le yen et "5 $" pour le dollar. Si vous le démontez et appliquez le taux de change ci-dessus, vous pouvez le convertir en yen japonais.
#Supprimer les chaînes supplémentaires
def remove(string, remove_targets=[',', '\xa0']):
tmp = str(string)
for target in remove_targets:
tmp = tmp.replace(target, '')
return tmp
repatter = re.compile(r'[^0-9]*')
df['tmp'] = df.purchaseAmountText.map(remove)
df['Ccy'] = df.tmp.apply(lambda price: repatter.match(price).group())
df['LocalPrice'] = df.apply(lambda row: float(row.tmp.replace(row.Ccy, '')), axis=1)
df['JPY'] = df.LocalPrice * channel_to_df[key].Ccy.map(currency_to_rate)
--Heure: 2020/1/1 ~ 2020/6/30
Des graphiques à barres empilés sont empilés pour chaque bureau et distributeur, et chaque barre correspond à la devise. En outre, le nombre sous la devise correspond au montant total de l'espace de cette devise après conversion en yen japonais. Fondamentalement, l'unité du montant total est le yen, et il est affiché en unités de M ¥ (million de yens = 1 million de yens) sur le graphique.
Ce que j'ai trouvé
―― Le yen entier et le yen japonais (deux à droite du graphique à barres) sont à peu près les mêmes que Nijisanji (bleu) et hololive (orange) --Holive occupe la plupart des autres bars (devises étrangères) ――Cependant, le ratio de devises étrangères pouvant être utilisé pour le spacha est faible (le yen japonais est d'environ 1700 millions d'euros, et même la plupart des devises étrangères sont d'environ 54 millions d'euros). --Dans les devises étrangères, il y a beaucoup de dollars, NT \ $ (nouveaux dollars de Taiwan) et HK \ $ (dollars de Hong Kong).
Ce que j'ai trouvé
Top 10 distributeurs de quantité de spacha
ChannelName | Kind | JPY | Ccy |
---|---|---|---|
Kanata Ch.Kanata Amane | Hololive Japan | 37343515.3 | ALL |
Miko Ch.Sakura Miko | Hololive Japan | 38886890.4 | ALL |
Korone Ch.Korone | Hololive Japan | 44731483.4 | ALL |
Aqua Ch.Minato Akua | Hololive Japan | 45809937.8 | ALL |
Marine Ch.Cloche au trésor marine | Hololive Japan | 50261733.4 | ALL |
Kuzuha Channel | Nijisanji Japan | 51129800.4 | ALL |
Flare Ch.Éclat de Shiranui | Hololive Japan | 54643720.4 | ALL |
Pekora Ch.Lapin Pekora | Hololive Japan | 64229276.1 | ALL |
Rushia Ch.Junba Rushia | Hololive Japan | 65885208.3 | ALL |
Coco Ch.Kiryu Coco | Hololive Japan | 92221894.7 | ALL |
Le taux de change est le montant total de la devise étrangère Spacha / le montant total de toutes les devises Spacha.
Ce que j'ai trouvé
«M. Kagura avait le ratio outre-mer le plus élevé du montant total.
Top 10 des distributeurs du taux de change du Spacha
ChannelName | Foreign | ¥ | ForeignRate |
---|---|---|---|
Japanese HANJO! TV | 181921.1 | 93910 | 0.6595 |
신유야 / Yuya Shin 【NIJISANJI KR】 | 107003.8 | 47060 | 0.6945 |
Aadya【NIJISANJI EN】 | 35494.7 | 11728 | 0.7516 |
채아라 / Ara Chae 【NIJISANJI KR】 | 298770.0 | 91438 | 0.7657 |
Moona Hoshinova hololive-ID | 373024.2 | 76940 | 0.8290 |
Ayunda Risu Ch. hololive-ID | 1065439.7 | 190670 | 0.8482 |
이시우 / Siu Lee 【NIJISANJI KR】 | 198800.0 | 26668 | 0.8817 |
KITSUNEKON | 447854.0 | 58960 | 0.8837 |
위피 / Wiffy 【NIJISANJI KR】 | 42911.5 | 3500 | 0.9246 |
유루리 / Ruri Yu 【NIJISANJI KR】 | 7829.5 | 400 | 0.9514 |
Parmi les distributeurs avec un montant total de spacha de 1 million de yens ou plus, les 10 premiers distributeurs avec un taux de change de spacha
ChannelName | Foreign | ¥ | ForeignRate |
---|---|---|---|
Kana Sukoya [Nijisanji] Kana Sukoya | 2179453.4 | 15367825 | 0.1242 |
Suisei Channel | 3675447.1 | 25509246 | 0.1259 |
Mel Channel Ciel nocturne Mel channel | 364995.4 | 1847979 | 0.1649 |
Korone Ch.Korone | 8400464.4 | 36331019 | 0.1878 |
Aqua Ch.Minato Akua | 10832336.8 | 34977601 | 0.2365 |
Haato Channel Akai est après | 4379706.3 | 11658443 | 0.2731 |
Choco Ch.Choco Heitsuki | 1756487.1 | 4350998 | 0.2876 |
Towa Ch.Towa éternel | 6427437.7 | 13784228 | 0.3180 |
Festival des couleurs d'été de Matsuri Channel | 9173428.3 | 18616230 | 0.3301 |
Kagura Mea/ KaguraMea | 3249724.1 | 3817314 | 0.4598 |
Ce que j'ai trouvé
--M. Kuzunoha (en bas en bleu) et Mme Mirei Gunmichi (en bas en orange) sont les premiers totaux ――Cependant, la plupart de ces deux sont des yens japonais, par exemple, s'il s'agit du dollar, le classement sera inférieur à celui des autres rivières
--Nijisanji
―― Dans l'ensemble, le taux de change reste faible par rapport au yen japonais «Pourtant, hololive est plus élevé que les autres. Les bénéfices à l'étranger continueront-ils d'augmenter? ―― Y a-t-il plus de chances que d'autres bureaux soient victimes du déversement? «J'ai hâte de voir la croissance des marchés étrangers.
L'agrégation est presque la même que la destination du lien de l'article précédent et la visualisation est omise car elle organise uniquement les données. .. ..
Vous pouvez en savoir plus sur les données de commentaires YouTube dans les articles suivants. https://zetta777.hatenablog.com/entry/2019/11/09/200816
Il semble y avoir de nombreux types de Renderers, mais pour obtenir le montant de spacha, vous pouvez l'obtenir en gros avec le code suivant (je ne l'ai pas vérifié en détail ...). Ici, l'élément correspond à l'élément sous addChatitemAction dans la structure décrite dans le lien ci-dessus. Tout ce que nous faisons est de permettre de voir les informations sur la quantité d'espace pour chaque moteur de rendu. .. ..
#Message seulement
if 'liveChatTextMessageRenderer' in item.keys():
renderer_type = 'liveChatTextMessageRenderer'
renderer = item[renderer_type]
#Spacha uniquement
elif 'liveChatPaidMessageRenderer' in item.keys():
renderer_type = 'liveChatPaidMessageRenderer'
renderer = item[renderer_type]
#Message et spacha(Dans certains cas)
elif 'liveChatTickerPaidMessageItemRenderer' in item.keys():
renderer_type = 'liveChatTickerPaidMessageItemRenderer'
renderer = item[renderer_type]['showItemEndpoint']['showLiveChatItemEndpoint']['renderer']['liveChatPaidMessageRenderer']
#Nouveau membre
elif 'liveChatMembershipItemRenderer' in item.keys():
renderer_type = 'liveChatMembershipItemRenderer'
renderer = item[renderer_type]
#Nouveau membre(Je ne connais pas la différence avec liveChatMembershipItemRenderer Je n'ai pas enquêté)
elif 'liveChatTickerSponsorItemRenderer' in item.keys():
renderer_type = 'liveChatTickerSponsorItemRenderer'
renderer = item[renderer_type]['showItemEndpoint']['showLiveChatItemEndpoint']['renderer']['liveChatMembershipItemRenderer']
#Je ne sais plus
elif 'liveChatPaidStickerRenderer' in item.keys():
renderer_type = 'liveChatPaidStickerRenderer'
renderer = item[renderer_type]
#Je ne sais plus
elif 'liveChatTickerPaidStickerItemRenderer' in item.keys():
renderer_type = 'liveChatTickerPaidStickerItemRenderer'
renderer = item[renderer_type]['showItemEndpoint']['showLiveChatItemEndpoint']['renderer']['liveChatPaidStickerRenderer']
#Je ne sais plus
elif 'liveChatPlaceholderItemRenderer' in item.keys():
renderer_type = 'liveChatPlaceholderItemRenderer'
renderer = item[renderer_type]
#Je ne sais plus
elif 'liveChatModeChangeMessageRenderer' in item.keys():
renderer_type = 'liveChatModeChangeMessageRenderer'
renderer = item[renderer_type]
purchaseAmountText = renderer['purchaseAmountText']['simpleText'] if 'purchaseAmountText' in renderer.keys() else ''
def plot_stacked_bar(df, ax, title):
#Standardisation
for col in df.columns:
df[col] /= df[col].sum()
for i in range(len(df)):
ax.bar(df.columns, df.iloc[i], bottom=df.iloc[:i].sum())
ax.set_title(title)
Recommended Posts