2

この形式でツイートを投稿するために使用したユーザー名とアプリを含むテキストファイルがあります。これはファイルからの小さなサンプルです。

John, Twitter for iPhone
Doe, web
Jack, Twitter for Android
foo, Twitter for iPhone
bar, Twitter for iPhone
foo1, TweetDeck
John1, Twitter for iPhone
Doe2, web
Jack3, Twitter for Android
foo2, Twitter for iPhone
bar2, Twitter for iPhone
foo3, Tweet Button
a1,Twitter for iPhone
a2,web
s1,Mobile Web
s2,Twitter for iPhone
s3,Twitterrific

アプリ情報を棒グラフまたは円グラフとしてプロットするにはどうすればよいですか?ユーザー名は気にしません。さまざまなアプリを比較したグラフです。このような単純なプロットに適したチャートライブラリはどれですか?

4

4 に答える 4

3

の円グラフを使い始めるためのサンプルコードを次に示しますMatplotlib。データを。というファイルに保存したと仮定しますdata.txt

import matplotlib.pyplot as plt

apps = {}

with open('data.txt', 'r') as f:
    lines = f.readlines()

for line in lines:
    app = line.split(',')[1].strip()
    if app not in apps:
        apps[app] = 1
    else:
        apps[app] += 1

data = [(k,apps[k]) for k in apps]
data_s = sorted(data, key=lambda x: x[1])

x = [app[1] for app in data_s]
l = [app[0] for app in data_s]
plt.pie(x)
plt.legend(l, loc='best')

plt.show()
于 2012-05-30T16:55:09.760 に答える
0

私はpygooglechartを使用しました。シンプルで直感的で、優れたがあります。

まずこれをチェックしてください。

于 2012-05-30T16:46:31.250 に答える
0

Matplotlibは一般的なオプションであり、良い例があります。

私は個人的にPyXを利用してきましたが、特定の種類のグラフでは他のグラフよりも簡単であることがわかりました。

于 2012-05-30T16:47:41.250 に答える
0

@Brandan のコードを再利用し、collections.Counterを導入して改善しました (すべて尊重します)。

import matplotlib.pyplot as plt
import collections

with open('data.txt', 'r') as f:
    data_s = collections.Counter([line.split(',')[1].strip() for line in f.readlines()]).most_common()


x = [app[1] for app in data_s]
l = [app[0] for app in data_s]
plt.pie(x)
plt.legend(l, loc='best')

plt.show()
于 2012-05-30T17:30:34.547 に答える