您好,欢迎来到网暖!

当前位置:网暖 » 站长资讯 » 建站基础 » 网络技术 » 文章详细 订阅RssFeed

python学习之数据分析绘图

来源:网络整理 浏览:257次 时间:2020-10-28
数据分析绘图库Matplotlib

• 图例Legend 代表图形里的内容 python学习之数据分析绘图
• 网格Grid,图形中的虚线,True显示网格
• 点 Markers:表示点的形状。

基本的视觉元素有三种:点、线、柱状。分析下面需求绘制什么图形?
学生为某科课程花费的时间和考试成绩两者之间的关系,查看两者之间的相关性。
python学习之数据分析绘图
python学习之数据分析绘图

python学习之数据分析绘图
make标记样式

python学习之数据分析绘图
标记颜色color

第一个图形绘制完成顺序
#1). 导入绘图库import  matplotlib.pyplot as pltimport  numpy as np#2). 创建画板figurefigure = plt.figure(figsize=(10, 10))#3). 创建子图subplot/Axesax = plt.subplot(1, 1, 1)#4). 准备数据#从0-50分割成100份x = np.linspace(0, 10, 100)y = np.sin(x)#6). 绘制ax.plot(x, y, color='orange', marker='*', linestyle='-.')ax.set_title('y = sinx')ax.set_xlabel('x')ax.set_ylabel('y')#7). 显示图形plt.show()
第一个图形绘制快速版
import matplotlib.pyplot as pltimport numpy as np#1). 准备数据信息x = np.linspace(0, 20, 100)y = np.sin(x)#2). 直接绘图plt.plot(x, y)#plt.scatter(x, y)plt.title('y = sinx')plt.xlabel('x')plt.ylabel('y')#3). 绘制图形并显示plt.show()

多图绘制
多图案例
python学习之数据分析绘图

绘制步骤
python学习之数据分析绘图

案例一: 散点图和折线图
绘图需求: 基于某函数,并在其一定范围震动的离散图。一定范围内震动呢?y加个随机数
python学习之数据分析绘图

1.1 散点图绘制
python学习之数据分析绘图
.python学习之数据分析绘图
子图绘制

#1). 导入绘图库import  matplotlib.pyplot as pltimport  numpy as np#2). 创建画板figurefigure = plt.figure(figsize=(10, 10))#3). 创建子图subplot/Axes, 生成2行一列的子图,#第一行第一列绘制sinx的图形, 第二行第一列绘制cosx的图形ax1 = plt.subplot(2, 1, 1)ax2 = plt.subplot(2, 1, 2)#4). 准备数据#从0-50分割成100份x = np.linspace(0, 10, 100)y1 = np.sin(x)y2 = np.cos(x)#6). 绘制ax1.plot(x, y1, color='orange', linestyle='-.')ax1.set_title('y = sinx')ax1.set_xlabel('x')ax1.set_ylabel('y')ax2.plot(x, y2, color='m', linestyle='-.')ax2.set_title('y = cosx')ax2.set_xlabel('x')ax2.set_ylabel('y')#7). 显示图形plt.show()

1.2 曲线图
python学习之数据分析绘图
2.python学习之数据分析绘图

案例二: 柱状图
条形图(bar chart),也称为柱状图,是一种以长方形的长度为变量的统计图表,长方形的长
度与它所对应的变量数值呈一定比例。假设某项针对男女大学生购买饮用水爱好的调查结果如下
表:
python学习之数据分析绘图
竖向条形绘制

import matplotlib.pyplot as plt    # 1. 创建figure    fig = plt.figure()    # 2. 创建子图(1行2列)ax1 = plt.subplot(1, 2, 1)ax1.set_title('男生购买饮用水情况的调查结果')ax2 = plt.subplot(1, 2, 2)ax2.set_title('女生购买饮用水情况的调查结果')    # ***********中文乱码如何解决    plt.rcParams['font.sans-serif'] = ['SimHei']    # 3. 加载数据信息waters = ['碳酸饮料', '绿茶', '矿泉水', '其它', '果汁']boy_buy_num = [6, 7, 6, 2, 1]girl_buy_num = [9, 4, 4, 6, 5]    # 4. 绘制条形图    bar_width = 0.4    ax1.bar(waters, boy_buy_num, bar_width, color='orange')    ax2.bar(waters, girl_buy_num, bar_width, color='g')    # 5. 保存图片到本地    # plt.show()plt.savefig('bar.png')

横向条形图绘制

    import matplotlib.pyplot as plt        # 1. 创建figure        fig = plt.figure()        # 2. 创建子图(1行2列)    ax1 = plt.subplot(2, 1, 1)    ax1.set_title('男生购买饮用水情况的调查结果')    ax2 = plt.subplot(2, 1, 2)    ax2.set_title('女生购买饮用水情况的调查结果')        # ***********中文乱码如何解决        plt.rcParams['font.sans-serif'] = ['SimHei']        # 3. 加载数据信息    waters = ['碳酸饮料', '绿茶', '矿泉水', '其它', '果汁']    boy_buy_num = [6, 7, 6, 2, 1]    girl_buy_num = [9, 4, 4, 6, 5]        # 4. 绘制条形图    bar_width = 0.4    ax1.barh(waters, boy_buy_num, height=bar_width, color='orange')    ax2.barh(waters, girl_buy_num, height=bar_width, color='g')        # 5. 保存图片到本地        # plt.show()    plt.savefig('bar.png')

案例二: 柱状图
python学习之数据分析绘图
python学习之数据分析绘图

并列条形图: 若要将男生与女生的调查情况画出两个条形图一块显示,则可以使用 bar两次,
并调整 条形图位置坐标以及相应刻度,使得两组条形图能够并排显示
python学习之数据分析绘图
python学习之数据分析绘图
并列条形图绘制

import matplotlib.pyplot as pltimport numpy as np    # ***********中文乱码如何解决plt.rcParams['font.sans-serif'] = ['SimHei']    # 加载数据信息waters = ['碳酸饮料', '绿茶', '矿泉水', '其它', '果汁']boy_buy_num = [6, 7, 6, 2, 1]girl_buy_num = [9, 4, 4, 6, 5]    # 调整条形图的横坐标bar_width = 0.4boy_index = np.arange(len(waters))  # [0, 1, 2, 3, 4]girl_index = boy_index + bar_width  # numpy传播机制, [0.4, 1.4, 2.4, 3.4, 4.4]    # 绘制条形图plt.bar(boy_index, boy_buy_num, bar_width, color='orange', label='男生')plt.bar(girl_index, girl_buy_num, bar_width, color='g', label='女生')    # 修改无意义的横坐标为有意义的横坐标    plt.xticks(boy_index + bar_width / 2, waters)    plt.ylabel("购买量")    plt.title("购买饮水情况的调查表")    plt.legend()        # 保存图片到本地            # plt.show()plt.savefig('bar.png')
K近邻算法分类可视化分析

K近邻算法原理
K近邻算法: 近朱者赤,近墨者黑。新的数据点离谁(一个或多个近邻点)最近, 就和谁属于同一类
python学习之数据分析绘图
K近邻算法数据集
在skilit-learn中内置了若干个玩具数据集(Toy Datasets), 还有一些API可以自己动手生成数
据集, 如下面代码所示:
python学习之数据分析绘图
K近邻算法分类
我们已经生成一系列数据集当作机器学习的训练数据集,接下来就是根据KNN算法找一个
模型, 然后根据模型对未知数据进行分类。
python学习之数据分析绘图

K近邻算法回归可视化分析
K近邻算法回归原理
K近邻算法也可以用于回归, 原理和分类相同。 计算每个数据点的预测值时,模型会选择离该
数据点最近的若干个点,并将它们的y值取平均值,并作为新数据点的预测值
python学习之数据分析绘图

K近邻分类算法
from sklearn.datasets import  make_blobsfrom sklearn.neighbors import  KNeighborsClassifierimport  matplotlib.pyplot as plt    # 生成数据集, eg: x=(花瓣长度, 花茎的长度), y=(第一种花: 鸢尾花1). 训练集    X, y = make_blobs(n_samples=200, n_features=2, centers=2, random_state=8)        # 如何去寻找一个模型,并最终根据模型预判新的测试数据所属的分类?        # 机器学习: 寻找一个函数/模型的过程. f(x)='xxxxxxx', f(image)='cat', f(alpha-go)=5x5, f('对话')=‘对话’clf = KNeighborsClassifier()clf.fit(X, y)       # 拟合(找模型的过程)test_data = [6, 3]  # 测试集: 测试模型好坏/正确率的数据集class_name = clf.predict([test_data])print("新数据点的分类是: ", class_name)    # # 给定一个新的特征信息, 分析属于哪一类?    # test_data = [6, 3]    #    # # 通过绘制散点图, 清楚的看到分为2类    # plt.scatter(X[:, 0], X[:, 1], edgecolors='orange', color='white')    # plt.scatter(test_data[0], test_data[1], marker='*', color='r')    # plt.show()
k近邻的回归算法
import matplotlib.pyplot as pltimport numpy as npfrom sklearn.datasets import make_regressionfrom sklearn.neighbors import KNeighborsRegressor#产生回归的数据集(训练集)X, y = make_regression(n_samples=100, n_features=1, n_informative=1,                       noise=50, random_state=8)#通过K近邻的回归器, 拟合/寻找模型reg = KNeighborsRegressor()reg.fit(X, y)#给定一些新的数据(测试集),预测y值"""一维数组: np.linspace [1, 2, 3, 4, 5]n*1数组: rwshape(-1, 1)reg.predict([[1], [2]])  # 预测市需要传递的信息"""test_x = np.linspace(-3, 3, 100).reshape(-1, 1)test_y = reg.predict(test_x)#print("模型的准确度: ", reg.score(X, y))#***********中文乱码如何解决plt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = False#绘制图形plt.scatter(X, y, marker='*', color='orange', edgecolors='orange', label='训练集')plt.plot(test_x, test_y, color='black', label='测试集')plt.title('KNN Regressor')plt.legend()plt.show()
seaborn库

官方网址:
https://seaborn.pydata.org/introduction.html
seaborn整体风格
Seaborn共提供5种主题风格,分别为darkgrid、whitegrid、dark、 white以及ticks。
利用set()和set_style()两个函数对整体风格进行控制
python学习之数据分析绘图
python学习之数据分析绘图
设置子图风格
通过关键字with,对不同子图设置风格
python学习之数据分析绘图
python学习之数据分析绘图python学习之数据分析绘图
seaborn内容风格
对图中内容进行设置,包括线条颜色,粗细和刻度等
python学习之数据分析绘图
python学习之数据分析绘图

推荐站点

  • 腾讯腾讯

    腾讯网(www.QQ.com)是中国浏览量最大的中文门户网站,是腾讯公司推出的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。

    www.qq.com
  • 搜狐搜狐

    搜狐网是全球最大的中文门户网站,为用户提供24小时不间断的最新资讯,及搜索、邮件等网络服务。内容包括全球热点事件、突发新闻、时事评论、热播影视剧、体育赛事、行业动态、生活服务信息,以及论坛、博客、微博、我的搜狐等互动空间。

    www.sohu.com
  • 网易网易

    网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。

    www.163.com
  • 新浪新浪

    新浪网为全球用户24小时提供全面及时的中文资讯,内容覆盖国内外突发新闻事件、体坛赛事、娱乐时尚、产业资讯、实用信息等,设有新闻、体育、娱乐、财经、科技、房产、汽车等30多个内容频道,同时开设博客、视频、论坛等自由互动交流空间。

    www.sina.com.cn
  • 百度一下百度一下

    百度一下,你就知道

    www.baidu.com