IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 数据分析实战-15 一次学会python数据可视化的10种技能 -> 正文阅读

[人工智能]数据分析实战-15 一次学会python数据可视化的10种技能

底部附有图表的实现代码

可视化视图有哪些?

按照数据之间的关系,可以把可视化视图划分为4类:分别是比较,联系,构成和分布,具有以下特点:

  1. 比较:比较数据间各类别的关系,或者是它们随着时间的变化趋势,比如折线图
  2. 联系:查看两个或者两个以上变量之间的关系,比如散点图
  3. 构成:每个部分占整体的百分比,或者是随着时间的百分比变化,比如饼图
  4. 分布:关注单个变量,或者多个变量的分布情况,比如直方图
散点图

散点图的英?叫做 scatter plot,它将两个变量的值显示在?维坐标中,
?常适合展示两个变量之间的关系。

import matplotlib.pyplot as plt

scatter box

折线图

折线图可以?来表示数据随着时间变化的趋势。

seaborn linechart

直方图

直?图是?较常?的视图,它是把横坐标等分成了?定数量的?区间,这个?区间也叫“箱?”,然后在每个“箱?”内?矩形条(bars)展示该箱?的箱?数(也就是y值),这样就完成了对数据集的直?图分布的可视化。

matplotlib-histogram

在这里插入图片描述

条形图

如果说通过直?图可以看到变量的数值分布,那么条形图可以帮我们查看类别的特征。在条形图中,?条形的?度表示类别的频数,宽度表示类别。

箱线图

箱线图,?称盒式图,它是在1977年提出的,由五个数值点组成:最?值(max)、最?值(min)、中位数(median)和上下四分位数(Q3,Q1)。它可以帮我们分析出数据的差异性、离散程度和异常值等。
matplotlib-boxchart
matplot-boxchart

饼图

饼图是常?的统计学模块,可以显示每个部分??与总和之间的?例。
piechart

热力图

热?图,英?叫heat map,是?种矩阵表示?法,其中矩阵中的元素值?颜?来代表,不同的颜?代表不同??的值。通过颜?就能直观地知道某个位置上数值的??。另外你也可以将这个位置上的颜?,与数据集中的其他位置颜?进??较。

蜘蛛图

蜘蛛图是?种显示?对多关系的?法。在蜘蛛图中,?个变量相对于另?个变量的显著性是清晰可?的。
在这里插入图片描述

二元变量分布

在Seaborn?,使??元变量分布是?常?便的,直接使?sns.jointplot(x,y,data=None,kind)函数即可。其中?kind表示不同的视图类型:“kind=‘scatter’”代表散点图,“kind=‘kde’”代表核密度图,“kind=‘hex’”代表Hexbin图,它代表的是直?图的?维模拟
joint-plot-scatter
joint-plot-kde
joint-plot-hexbin

成对关系

如果想要探索数据集中的多个成对双变量的分布,可以直接采?sns.pairplot()函数。它会同时展示出DataFrame中每对变量的关系,另外在对?线上,你能看到每个变量?身作为单变量的分布情况。它可以说是探索性分析中的常?函数,可以很快帮我们理解变量对之间的关系。

pairplot函数的使?,就像在DataFrame中使?describe()函数?样?便,是数据探索中的常?函数。

使?Seaborn中?带的iris数据集,这个数据集也叫鸢尾花数据集。鸢尾花可以分成Setosa、Versicolour和Virginica三个品种,在这个数据集中,针对每?个品种,都有50个数据,每个数据中包括了4个属性,分别是花萼?度、花萼宽度、花瓣?度和花瓣宽度。通过这些数据,需要你来预测鸢尾花卉属于三个品种中的哪?种。

?Seaborn中的pairplot函数来对数据集中的多个双变量的关系进?探索,如下图所示。从图上你能看出,?共有sepal_length、sepal_width、petal_length和petal_width4个变量,它们分别是花萼?度、花萼宽度、花瓣?度和花瓣宽度。

下?这张图相当于这4个变量两两之间的关系。?如矩阵中的第?张图代表的就是花萼?度?身的分布图,它右侧的这张图代表的是花萼?度与花萼宽度这两个变量之间的关系。

pairplot relation

总结

Seaborn是基于Matplotlib更加?级的可视化库。

通过对数据之间的比较,联系,构成和分布,能够分析出数据之间的一些基本联系

car_crash
scatter kde hex chart

代码链接
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd


def use_plt_scatter():
    s = np.random.random(size=(2, 100))
    plt.scatter(s[0], s[1], marker="o")  # 画散点图
    plt.show()


def use_seaborn_scatter():
    data = np.random.random(size=(2, 1000))
    dataframe = pd.DataFrame({'x': data[0], 'y': data[1]})
    sns.jointplot(x='x', y='y', data=dataframe, kind='scatter')  # 画散点图
    plt.show()


def use_plt_zhexian():
    x = np.arange(2000, 2020, step=1, dtype=np.int32)
    y = np.random.randint(20, 100, size=(20,))
    plt.plot(x, y)  # 画折线图
    plt.show()
    print(len(y))


def zhexian_use_seaborn():
    x = np.arange(2000, 2020, step=1, dtype=np.int32)
    y = np.random.randint(20, 100, size=(20,))
    dataframe = pd.DataFrame({"x": x, "y": y})
    sns.lineplot(x="x", y="y", data=dataframe)
    plt.show()

def boxchart_use_matplot():
    # 生成0-1之间的20*4维度数据
    data = np.random.normal(size=(20,4))
    labels = ['A','B','C','D']
    # 用Matplotlib画箱线图
    plt.boxplot(data,labels=labels)
    plt.show()

def boxchart_use_seaborn():
    # 生成0-1之间的20*4维度数据
    data = np.random.normal(size=(20,4))
    labels = ['A','B','C','D']
    # 用seaborn画箱线图
    df = pd.DataFrame(data,columns=labels)
    sns.boxplot(data=df)
    plt.show()

def histogram_chart():
    # 初始化数据
    data = np.random.randn(100)
    series = pd.Series(data)
    # matplotlib 绘制
    plt.hist(series)
    plt.show()
    # seaborn plt
    sns.displot(series,kde=False)
    plt.show()
    sns.displot(series,kde=True)
    plt.show()

def barchart_draw():
    # prepare data
    x = ['cat1','cat2','cat3','cat4','cat5']
    y = [10,6,7,3,12]
    # use matplotlib draw bar chart
    plt.bar(x,y)
    plt.show()
    # use seaborn
    sns.barplot(x,y)
    plt.show()

def piechart_draw():
    # prepare data
    nums = [34,12,45,53,12]
    labels = ['A',"B",'C','D','E']
    # plot with matplotlib
    plt.pie(x=nums,labels=labels)
    plt.show()

def heatmap_draw():
    # prepare data
    flights = sns.load_dataset("flights")
    data = flights.pivot('year','month','passenger')
    # draw with seaborn
    sns.heatmap(data)
    plt.show()

def radar_chart_draw():
    # prepare data
    labels = np.array([u'推进','kda',u'生存',u'团战',u'发育',u'输出'])
    stats = [90,85,82,78,88,93]
    # angle state data
    angles = np.linspace(0,2*np.pi,len(labels),endpoint=False)
    stats = np.concatenate((stats,[stats[0]]))
    angles = np.concatenate((angles,[angles[0]]))
    # draw radar chart with matplotlib
    figure = plt.figure()
    ax = figure.add_subplot(111,polar=True)
    ax.plot(angles,stats,'o-',linewidth=2)
    ax.fill(angles,stats,alpha=0.25)
    # configure Chinese font
    # font = FontProperties()
    plt.show()

def joint_plot_draw():
    # prepare data
    sns.set()
    tips = sns.load_dataset("tips")
    print(tips.head(10))
    # seaborn draw jointplot(scatter ,kde ,hexbin)
    sns.jointplot(x='total_bill',y='tip',data=tips,kind='scatter')
    sns.jointplot(x='total_bill',y='tip',data=tips,kind='kde')
    sns.jointplot(x='total_bill',y='tip',data=tips,kind='hex')
    plt.show()

def pairplot_draw():
    # load data
    iris = sns.load_dataset('iris')
    # draw picture with seaborn
    sns.pairplot(iris)
    plt.show()

def car_crash_chart():
    data = sns.load_dataset('car_crashes')
    print(data.head(10))

    # draw pair chart
    sns.pairplot(data)

    # draw scatter chart
    sns.jointplot(x='total',y='speeding',data=data,kind='scatter')

    # draw seaborn ked
    sns.jointplot(x='total',y='speeding',data=data,kind='kde')

    # draw seaborn hexbin chart
    sns.jointplot(x='total',y='speeding',data=data,kind='hex')

    plt.show()

if __name__ == '__main__':
    # use_plt_scatter()
    # use_seaborn_scatter()
    # use_plt_zhexian()
    # zhexian_use_seaborn()
    # boxchart_use_matplot()
    # boxchart_use_seaborn()
    # histogram_chart()
    # barchart_draw()
    # piechart_draw()
    # heatmap_draw()
    # radar_chart_draw()
    # joint_plot_draw()
    # pairplot_draw()
    car_crash_chart()
参考链接

1.数据分析实战45讲
2.你从《数据分析实战45讲》学到了什么,可以分享一下你学习数据分析的心得或者学习资料?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-28 11:16:07  更:2021-11-28 11:17:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 3:36:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码