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

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

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

轮廓图

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 代码实现
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 代码实现

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_coordinates ( frame , 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 代码实现

散布图矩阵

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 代码实现

其他

条形图: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( ) ​​​​​​​

Original: https://blog.csdn.net/qq_51308613/article/details/123743591
Author: Cistanche Herba
Title: 多元统计分析 图标表示法 数据可视化 python 代码实现

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/765780/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球