2016-05-18 9 views
0

フォーム(文字列、文字列)内のデータポイントを視覚的に表す散布図をプロットしたいと思います。各座標は、指定されたString値のセットから取られた文字列であり、X軸とY軸のセットです。私はライブラリを見つけるのが苦労しています - 可能なpython - それは単にカテゴリデータ(数値ではない)の表現を可能にします。カテゴリデータのみを含む散布図

私はSeaborn swarmplotを試しましたが、少なくとも1つの座標は数字である必要があります。

私は、同じ2つの座標を持つ点が衝突することを知っています。そして、それらの点を隣接する(クラスタのような)ライブラリとして見たいと思っていました。

ありがとうございました。

+1

それはあなたが探しているものは非常に明確ではありません。たぶんあなたはいくつかの例のデータを表示し、あなたが作ろうとしている種類のプロットの写真にリンクすることができますか? – mwaskom

+0

@mwaskomはい私は私がかなり標準的な問題ではないと信じています。私は、座標値が数値ではなくカテゴリラベルで与えられる点のクラスターを視覚化できるようにしたいと考えています。私は回避策の解決に取り組んでいます。準備ができたら、その写真を投稿します。 – ClonedOne

答えて

2

pandasは、このための優れたライブラリです。

データフレームを作成するには、カテゴリ変数(データフレーム作成の引数dtype='category'に注意してください)を入力し、各カテゴリ変数の数値コードを取得し、パンダ自体またはmatplotlibなどを使用して散布図を作成します。

例:

In [1]: import pandas as pd 

In [2]: df = pd.DataFrame({'col1': list('abcab'), 'col2': list('acbbb')}, dtype='category') 

In [3]: df 
Out[3]: 
    col1 col2 
0 a a 
1 b c 
2 c b 
3 a b 
4 b b 

In [4]: df_num = df.apply(lambda x: x.cat.codes) 

In [5]: df_num 
Out[5]: 
    col1 col2 
0  0  0 
1  1  2 
2  2  1 
3  0  1 
4  1  1 

In [6]: df_num.plot.scatter('col1', 'col2') 

enter image description here

+0

ありがとうございます。カテゴリのデータをプロットするために直接使用することができなかったので、これですべての問題を解決することはできませんでしたが、少なくとも私はそれを使って何かを考え出すことができました。この種のデータをすでに扱っている図書館があれば、より良い結果が得られました。 – ClonedOne