2017-10-10 10 views
-1

でのpythonでサイズの円をプロット:は、これは私のデータの一例であるパンダ

import pandas as pd 
mydic = {'user1': {'product': 234, 'device': 567}, 'user1': {'product': 678, 'device': 256},'user2': {'product': 890, 'device': 456},'user2': {'product': 256, 'device': 678},'user3': {'product': 456, 'device': 278}} 
df = pd.DataFrame.from_dict(mydic, orient='index', dtype=None) 
df.head() 

enter image description here

そして私は散布またはバーグラフをプロットすることができますが、この特定のタスクのために、私は、最善の方法を信じて各ユーザーの注釈が付いた値によってサイズが決められた値ごとに円を表示することです。このような何か:

enter image description here

私はそれがPythonで可能であってもよく分かりません。誰かがスマートな何かを提案することができますか

+0

["draw circle python"](http://www.google.de/search?q=draw+circle+python)については、Googleにpythonで円を描く方法があります。他に何が手伝ってくれますか? – ImportanceOfBeingErnest

+0

これはあなたの特定の質問(したがってコメント)に対する答えではないことは分かっていますが、バーのプロットはサークルより優れていると思います。実際には4倍の大きさの円を2倍の大きさで見るのは簡単です。あなたはシーボンを使うことができます:https://seaborn.pydata.org/examples/color_palettes.html そうでなければ、円を描くことはあまり難しくありません。 – Wli

答えて

0

は最もエレガントな解決策になるが、しようとしない場合があります:より良い出力を得るためのスタイルを持つ

%matplotlib inline 
import matplotlib.pyplot as plt 
n = len(df) 
y = range(n) 
scale = 5 
f, ax = plt.subplots(1, 1) 
ax.scatter([[1]] * n, y, s=scale * df['product']) 
for i in range(n): 
    ax.text(2, y[i], df.index[i]) 
ax.scatter([[3]] * n, y, s=scale * df['device']) 
ax.set_xlim(0, 4) 
ax.set_ylim(-1, n); 

は遊び(あなたが変更の大きさや色、軸とグリッドを削除することができます):

play with numbers to get better ouput

+0

ありがとう!それはまさに私が探していたものです。 – aviss

関連する問題