kin*_*o-d 6 python numpy matplotlib data-science
我有这样的数据:
ID x1 x2 x3 x4 x5 x6 x7 x8 x9 x10
1 -0.18 5 -0.40 -0.26 0.53 -0.66 0.10 2 -0.20 1
2 -0.58 5 -0.52 -1.66 0.65 -0.15 0.08 3 3.03 -2
3 -0.62 5 -0.09 -0.38 0.65 0.22 0.44 4 1.49 1
4 -0.22 -3 1.64 -1.38 0.08 0.42 1.24 5 -0.34 0
5 0.00 5 1.76 -1.16 0.78 0.46 0.32 5 -0.51 -2
Run Code Online (Sandbox Code Playgroud)
什么是可视化这些数据的最佳方法,我使用matplotlib对其进行可视化,并使用pandas从csv中读取它
谢谢
Ang*_*ams 19
在高维空间中可视化数据始终是一个难题.常用的一种解决方案(现在可用pandas)是检查数据的所有1D和2D投影.它没有提供有关数据的所有信息,但除非您能在10D中看到,否则无法进行可视化!这是一个如何使用pandas(版本0.7.3向上)执行此操作的示例:
import numpy as np
import pandas as pd
from pandas.tools.plotting import scatter_matrix
#first make some fake data with same layout as yours
data = pd.DataFrame(np.random.randn(100, 10), columns=['x1', 'x2', 'x3',\
'x4','x5','x6','x7','x8','x9','x10'])
#now plot using pandas
scatter_matrix(data, alpha=0.2, figsize=(6, 6), diagonal='kde')
Run Code Online (Sandbox Code Playgroud)
这将生成一个图表,其中所有2D投影都是散点图,以及一维投影的KDE直方图:
我在github页面上也有一个纯matplotlib方法,它产生一个非常相似类型的绘图(它是为MCMC输出设计的,但在这里也是合适的).这是你在这里使用它的方式:
import corner_plot as cp
cp.corner_plot(data.as_matrix(),axis_labels=data.columns,nbins=10,\
figsize=(7,7),scatter=True,fontsize=10,tickfontsize=7)
Run Code Online (Sandbox Code Playgroud)