多元统计分析 图标表示法 数据可视化 python 代码实现

图的组成部分(取自matplotlib.org):

多元统计分析 图标表示法 数据可视化 python 代码实现_第1张图片

轮廓图

1.plt.contour( )方法

import matplotlib.pyplot as plt
import numpy as np

# make data
X, Y = np.meshgrid(np.linspace(-3, 3, 256), np.linspace(-3, 3, 256))
Z = (1 - X/2 + X**5 + Y**3) * np.exp(-X**2 - Y**2)
levels = np.linspace(np.min(Z), np.max(Z), 7)

# plot
fig, ax = plt.subplots()

ax.contour(X, Y, Z, levels=levels)

plt.show()

多元统计分析 图标表示法 数据可视化 python 代码实现_第2张图片 

 

import matplotlib.pyplot as plt
import numpy as np

# make data
X, Y = np.meshgrid(np.linspace(-3, 3, 256), np.linspace(-3, 3, 256))
Z = (1 - X/2 + X**5 + Y**3) * np.exp(-X**2 - Y**2)
levels = np.linspace(Z.min(), Z.max(), 7)

# plot
fig, ax = plt.subplots()

ax.contourf(X, Y, Z, levels=levels)

plt.show()

 多元统计分析 图标表示法 数据可视化 python 代码实现_第3张图片

 

np.meshgrid(a,b):生成二维平面网格

如:

a = np.array([1,2,3])
b = np.array([7,8])
c = np.meshgrid(a,b)
   
#输出:[array([[1, 2, 3],[1, 2, 3]]), array([[7, 7, 7], [8, 8, 8]])]

np.linspace(start, stop, num=x)    #输出x个范围在start--stop内的数值

np.exp(x) : 求x的幂次方

np.sqrt(x) : 求x的开方(算数平方根)

plt.subplot():指定子图的位置 创建一个图形和一组子图

fig,ax = plt.subplots(2,3,1):2、3、1分别代表子图的行数、列数和第一个子图

                                                        函数返回一个figure图像和子图ax的array列表

plt.contour( ):绘制轮廓图

plt.contourf( ):绘制填充区域颜色的图表

plt.imshow( ):展示图像

2.pandas.plotting.parallel_coordinates( )方法

pandas.plotting.parallel_coordinatesframe , class_column , cols = None , ax = None , color = None , use_columns = False , xticks = None , colormap = None , axvlines = True , axvlines_kwds = None , sort_labels = False , ** kwargs )

frame : DataFrame类型数据

class_column :str类型,指定哪一列包含类的名字

cols :要使用的列名列表

ax :Matplotlib 轴对象

color :list or tuple,用于不同类别的颜色

use_columns:bool,如果为真,列将用作 xticks

xticks:用于 xticks 的值列表

colormap :用于线条颜色的颜色图

sort_labels : bool, 排序 class_column 标签,在分配颜色时很有用

**kwargs :传递给 matplotlib 绘图方法的选项

雷达图

举例代码:

import matplotlib.pyplot as plt
import numpy as np

# 中文和负号的正常显示
plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'
plt.rcParams['axes.unicode_minus'] = False

#使用ggplot的绘图风格
plt.style.use('ggplot')

#构建角度和值
# 标签
labels = np.array(['aa','bb','cc','dd','ee','ff',"aa"]) 
# 数据
data = np.array([1,4,3,6,4,8]) 

# 数据长度
dataLenth = 6 
# 分割圆周长
angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False) 
# 数据闭合
data = np.concatenate((data, [data[0]]))
# 圆周长闭合
angles = np.concatenate((angles, [angles[0]])) 
# data:半径
# lw=2:表示极坐标图案的宽度
# bo-:绘制的极坐标图形为蓝色圆点加蓝线
plt.polar(angles, data, 'bo-', lw=2,alpha=0.5) #做极坐标系
# 做标签
plt.thetagrids(angles * 180/np.pi, labels) 
# #设置填充颜色,并且透明度为0.25
plt.fill(angles, data, facecolor='b', alpha=0.25)
#设置极轴的范围
plt.ylim(0,10)  
#添加标题
plt.title('标题')
#显示网格线
plt.grid(True)
plt.show()

 多元统计分析 图标表示法 数据可视化 python 代码实现_第4张图片

 散布图矩阵

from pandas.plotting import scatter_matrix
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame(np.random.randn(1000, 4), columns=['a', 'b', 'c', 'd'])
scatter_matrix(df, alpha=0.2, figsize=(6, 6), diagonal='kde')
plt.show()

 多元统计分析 图标表示法 数据可视化 python 代码实现_第5张图片

 其他

条形图:df.plot.bar( )   或  df.plot.barth( ) 

密度图:df.plot.kde( )   或   df.plot.density( ) 

直方图:df.plot.hist( ) 

箱线图:df.plot.box( ) 

饼图:df.plot.pie( ) 

面积图:df.plot.area( ) 

散点图:df.plot.scatter( ) 

六边形 bin 图:df.plot.hexbin( ) ​​​​​​​

你可能感兴趣的:(Python,python)