我想绘制一个散点图来直观地表示表单中的数据点(字符串,字符串)。其中每个坐标是从给定的一组String值中取出的字符串,一组用于X轴,另一组用于Y轴。我很难找到一个库 - 可能是python-它只允许表示分类数据(没有数字值)。
我尝试过使用Seaborn swarmplot,但似乎至少有一个坐标必须是数字。
我知道相同的两个坐标会碰撞的点,我希望找到一个代表那些点的库(像簇一样)。
感谢。
答案 0 :(得分:2)
pandas是一个很棒的图书馆。
您可以使用分类变量创建数据框(请注意数据框创建的dtype='category'
参数),然后获取每个分类变量的数字代码,并使用pandas本身或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')