私は長い間、code_swarmとgourceでさまざまな統計を視覚化するのが好きでした。
最近、
Google PlusのGoogle APIを習得することを決定し、最も便利で興味深いのは、ユーザーアクティビティに関する統計を収集し、上記のツールを使用してこの情報を視覚化するアルゴリズムを考え出すことです。 この記事では、完了した作業の結果について説明します。
私が使用したもの
アプリケーションのソースコードは
github (
インストーラー )にあります。
実装については掘り下げず、主なポイントのみを説明します。
最初にJavascript
最初に、jsを介してデータを取得しようと決めました。 このために、私は
人々に関するページを作りました。 データの取得は非常に簡単であることが判明しました。
var request = gapi。 クライアント プラス 。 アクティビティ 。 リスト ( {
'userId' : profileID 、
「コレクション」 : 「パブリック」 、
'maxResults' : nextCount 、
'pageToken' : nextPage
} ) 。 実行 ( createLog ) ;
次に、タスクは、アクティビティを示すファイル名を生成するアルゴリズムを考案することでした。 この問題はテンプレートを使用して解決されました。
これを変換するコードの一部:
- fnc = filePattern [ o ] コメント 。 トリム ( ) ;
- fnc = fnc。 置換 ( /タイプ/ gi、 「コメント」 )
- 。 置換 ( / postId / gi、post。id )
- 。 置換 ( / id / gi、 comment。id )
- 。 置換 ( / postactor / gi、 post。actorId )
- 。 置換 ( / actor / gi、 comment。actor。id )
- 。 置換 ( / postdate / gi、post。date )
- 。 置換 ( / date / gi、date )
- 。 置換 ( / sharepath / gi、fns )
- 。 置換 ( / postfilename / gi、fn )
- 。 replace ( //// gi、 '/');
すべてのユーザーが独自のファイル名を作成できます。 ここでのファイルは、ユーザーアクティビティ、作成:投稿、コメント、再共有、プラスの露出を意味します。 ログの各行は、このアクティビティを実行した人に代わって形成されます。
このページを使用して取得したログの視覚化結果:
グース
- 一般的な概念
- Googleプラスユーザーはミツバチです。
- ポイント(投稿、コメントなど)-ハニカム要素、異なる色のポイント。
- ポイントタイプ
- エメラルド-投稿
- 緑-コメント
- 青-プラス
- ライトグリーン-再投稿
- などなど
- 光線の種類
- 緑-アイテムの作成
- オレンジ-コメント、プラス、再投稿
- 蜂は蜂の巣(井戸、または分子)の価値があります。
- このビデオでは、下から、そして左から、これらはアクティビティが生成されたプロファイルに応じたユーザーの主要な投稿です。
- 右側には、このユーザーが他のユーザーから作成した再投稿があり、独自のコメントと利点があります。
Code_swarm
- 一般的な概念
- Kroogi-Google Plusユーザー
- ライト-ユーザーアクティビティ(投稿、コメント、プラスなどの作成)
- ユーザーがユーザーからプッシュオフする
- ライトはライトからはじきます
- ライトはユーザーに引き付けられ、ユーザーはアクションを実行します。
- ユーザーは、共通のイベント、つまりユーザーが同じ投稿にコメントした場合に互いに惹かれます。
- ログが生成されたIDのユーザーにすべてが飛んでいきます。 しかし、他の場所にもユーザーとライトのクラスターがあります。 これらは、このプロファイルによって作成された他のユーザーの再投稿であり、すべての新しいイベントはそれに関連付けられています。 これは、ファイル名を生成するためのルールで変更できます。
しかし当然、この種の問題はブラウザーでは解決できないため、C#でアプリケーションを作成することにしました。
今C#
実際、すべては
ここに示されている簡単な例で行われ
ます 。 ここに作品があります:
- [ STAThread ]
- static void Main ( string [ ] args )
- {
- //ヘッダーを表示し、サンプルを初期化します。
- コマンドライン EnableExceptionHandling ( ) ;
- コマンドライン DisplayGoogleSampleHeader ( "プラスユーザーアクティビティ" ) ;
- //サービスを作成します。
- var service = new PlusService ( ) ;
- RunSample (サービス) ;
- コマンドライン PressAnyKeyToExit ( ) ;
- }
- private static void RunSample ( PlusServiceサービス)
- {
- //リクエストを実行します。
- コマンドライン WriteAction ( "リスト要求を実行しています..." ) ;
- var result = service。 アクティビティ リスト ( 「MY PROFILE ID」 、 Google。Apis。Plus。V1。ActivitiesResource。Collection。Public ) 。 フェッチ ( ) ;
- //結果を表示します。
- if ( result。Items != null )
- {
- foreach (結果のvarアイテム。 アイテム )
- {
- コマンドライン WriteResult ( item。Id 、itme。Actor。DisplayName ) ;
- }
- }
- }
当然、プロジェクトに接続するには、Google Plus Apisのラッパーを含むプロジェクトか、コンパイルされたライブラリを使用する必要があります。
しかし実際には、
このガイドからすべてが明らかになり
ます 。
github上のアプリケーションのソース。
ここでエグゼcode_swarmのログ生成の変更
大量のフォロワーには多くの加入者がいるため、code_swarmスキーム、ユーザーアクティビティについては、非常に多くのユーザーと、何も理解できない多くのポイントを取得します。 したがって、ユーザーの役割は投稿(そのID)であり、すべてのアクティビティ(ファイル名)はユーザーIDによって生成されることにしました。 アクティビティ(コメント、再共有、プラスなど)に応じて、さまざまな色のユーザーが投稿に群がり、誰がどの程度アクティブであるかが明確に表示されます。 はい、ファイル名もテンプレートを使用して生成されます:
プログラムの可視化結果
Code_swarm
- 円の中心点(または円の中心)は投稿です。
- ハイライトされたドット-コメント、プラス、再共有。
各ポイントには、それを離れたユーザーに対応する一意の名前があるため、いくつかのポイントは最大であり、ポストからポストへと飛びます-これはアクティブなユーザーです。
グース
- ライラックドット-再共有。
- 明るい緑色の点-コメント。
- ターコイズドットはプラスです。
- 3つのブランチの間のポイントはポストです。
結果
繰り返しますが、テクノロジーを研究するには、自分のやる気を引き出す必要があると確信しました。この場合、動機は分析されたデータの視覚的表現であり、私の場合は非常に刺激的です。 私は
Googleアナリティクスを勉強し、得られた統計を視覚化することも計画しています。この問題に関する経験があれば、共有できます。apilast.fmも興味深いです。
あなたの質問、コメントはコメントで待っています。
UPD:コメントで約束されているように、
logstalgiaのログ生成を追加し
ました 。 視覚化の結果は次のとおりです。