2016-05-18 5 views
0

Я хотел бы построить график рассеяния, чтобы визуально представлять точки данных в форме (строка, строка). Где каждая координата - это строка, взятая из заданного набора значений String, набор для оси X и один для оси Y. У меня возникли проблемы с поиском библиотеки - возможно, python - которая позволяет отображать только категориальные данные (без числовых значений).График рассеяния только с категориальными данными

Я пробовал с морским шарниром, но кажется, что хотя бы одна координата должна быть числовой.

Я знаю, что точки с теми же двумя координатами будут сталкиваться, и я надеялся найти библиотеку, которая представляла эти точки как смежные (кластер как).

Спасибо.

+1

Это не совсем понятно, что вы ищете. Может быть, вы могли бы показать некоторые примеры данных и ссылку на картину того сюжета, который вы хотите сделать? – mwaskom

+0

@ mwaskom да, я считаю, что моя не совсем стандартная проблема. Я хотел бы иметь возможность визуализировать кластеры точек, координаты которых задаются категориальными метками вместо числовых значений. Я работаю над обходным решением, когда он будет готов, я опубликую его. – ClonedOne

ответ

2

pandas - отличная библиотека для этого.

Вы можете создать dataframe с вашими категориальными переменными (обратите внимание на dtype='category' аргумент dataframe createion), а затем получить числовые коды для каждой категориальной переменной, и график рассеяния с помощью панд себя, или 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