在开始我们今天的正题之前,有一个基础的知识先补充一下,即matplotblo所有的画图函数接受的数据类型是numpy.array,所以在画图之前最好将数据类型转化成numpy.array,否则可能会有意外的错误。

例如, 将pandas.DataFrame在转化成np.arraya = pandas.DataFrame(np.random.rand(4,5), columns = list('abcde'))a_asndarray = a.values

或者将np.matrix转化成np.array

b = np.matrix([[1,2],[3,4]])b_asarray = np.asarray(b)

好了,今天我们将通过前两节掌握的方法,制作IRIS数据集相关图形,从事数据分析和挖掘工作的小伙伴们一定都听说过这个数据集,那么现在开始吧。

首先引入IRIS数据集和基本画图包,并打印查看数据结构import matplotlib.pyplot as pltimport pandas as pdimport numpy as npfrom sklearn import datasets iris = datasets.load_iris() # print(type(iris)) # iris的数据类型是sklearn.utils.Bunch;A Bunch is a Python dictionary that provides attribute-style access。for key, _ in iris.items(): # 查看iris所有的key print(key)#结果如下#data#target#target_names#DESCR#feature_names#filename# 打印数据集DESCR print(DESCR)

通过打印数据集DESCR,可以了解数据集的一些重要信息如下:Iris plants dataset--------------------**Data Set Characteristics:** :Number of Instances: 150 (50 in each of three classes) :Number of Attributes: 4 numeric, predictive attributes and the class :Attribute Information: - sepal length in cm - sepal width in cm - petal length in cm - petal width in cm - class: - Iris-Setosa - Iris-Versicolour - Iris-Virginica :Summary Statistics: ============== ==== ==== ======= ===== ==================== Min Max Mean SD Class Correlation ============== ==== ==== ======= ===== ==================== sepal length: 4.3 7.9 5.84 0.83 0.7826 sepal width: 2.0 4.4 3.05 0.43 -0.4194 petal length: 1.0 6.9 3.76 1.76 0.9490 (high!) petal width: 0.1 2.5 1.20 0.76 0.9565 (high!) ============== ==== ==== ======= ===== ==================== :Missing Attribute Values: None :Class Distribution: 33.3% for each of 3 classes.

由此知道数据集data的变量依次表示sepal length、sepal width、petal length、petal width(或者也可以由feature_names知晓),数据集target的0代表Iris-Setosa、1代表Iris-Versicolour、2代表Iris-Virginica(或者也可以由target_names知晓)。

以下是部分data和target输出结果print(iris['data']) # 是一个多维矩阵# array([[5.1, 3.5, 1.4, 0.2],[4.9, 3. , 1.4, 0.2],[4.7, 3.2, 1.3, 0.2]...])print(iris['data'].shape) # 结果是150x4的二维矩阵(150,4),即150条数据,4列变量print(iris['target']# 是一个1维矩阵# array([0,0,...,1,2,...])

OK,基本的数据结构已经了解了,我们想通过图形找出petal length、petal width和花的种类之间的关系图。脑海中大概想作出下图^_^

可以从图中清晰看出,setosa的花瓣宽度和长度都偏小,其次是versicolor,最大的是virginca。

那么,接来下就一步步给出作图的具体步骤

第一步,获取petal_length和petal_width数据petal_length=iris['data'][:,2] # 获取petal_length数据,2对应着第三列# print(petal_length)petal_width=iris['data'][:,3] # 获取petal_width数据,3对应着第四列# print(petal_width)

第二步,创建figure和axes对象fig = plt.figure()ax = fig.add_subplot(111)

第三步,绘制散点图的关键一步markers=[ 's' if i == 0 else 'o' if i==1 else 'd' for i in iris.target]colors=['pink' if i==0 else 'skyblue' if i==1 else 'lightgreen' for i in iris.target] for x, y, c, m in zip(petal_length, petal_width, colors, markers): ax.scatter(x, y, c=c, marker=m) # c=color;marker是点d的形状;注意zip函数的使用方法

第四步,添加x/y轴的变量描述说明ax.set_xlabel('petal length')ax.set_ylabel('petal width')

最后一步,绘制legend。定义了两个空list---x,y,所以只绘制了legend,没有生成其他额外数据。这是绘制legend的一般方法,多试试改改就能更好理解了。# 制作legendx=[]y=[]ax.scatter(x,y,marker='s',label='setosa',color='pink') # 绘制setosa的legendax.scatter(x,y,marker='o',label='versicolor',color='skyblue') # 绘制versicolor的legendax.scatter(x,y,marker='d',label='virginica',color='lightgreen') # 绘制virginica的legendplt.legend()plt.show()

好了,今天就写到这,更多精彩内容,欢迎继续关注噢~^_^

本文仅代表作者个人观点,不代表SEO研究协会网官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员,邮箱cxb5918@163.com。更多相关资讯,请到SEO研究协会网www.seoxiehui.cn学习互联网营销技术请到巨推学院www.jutuiedu.com。

python 导入数据集并画图_python matplotlib画图教程学习:(三)IRIS数据集作图相关推荐

  1. python回调廖雪蜂_Python 廖雪峰教程《三》

    python 高级特性 1. 迭代 当我们使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型. 那么,如何判断一个对象是可迭代对象 ...

  2. python处理数据集并制作词云图

    python处理数据集并制作词云图 处理数据 使用自定义词典 去掉停用词 词频统计 绘制词云图+美化 1.处理数据 这里是老师给的新闻数据集,里面有5个类别的新闻数据,我以cars这一类为例. 将cs ...

  3. Python导入数据

    Python导入数据的方法: 1)导入外部数据 2)导入模块内部的数据集 1)导入外部数据--利用pandas import pandas as pd data1 = pd.read_excel('a ...

  4. python绘制折线图数值小数点太长_Python matplotlib画图y轴数值不按大小排列问题

    matplotlib 画图的时候经常会出现y轴数据不按大小排列的问题,很混乱,这主要是因为数据类型的错误,导致的!大家可以仔细阅读下以下两个案例,就应该有答案了: 案例一: 昨天偶然做一个爬取数据,做 ...

  5. python导入数据画柱状图代码_在Linux下使用Python的matplotlib绘制数据图的教程

    如果你想要在Linxu中获得一个高效.自动化.高质量的科学画图的解决方案,应该考虑尝试下matplotlib库.Matplotlib是基于python的开源科学测绘包,基于python软件基金会许可证 ...

  6. python导入数据画折线图_Python读取Excel表格,并同时画折线图和柱状图的方法

    今日给大家分享一个Python读取Excel表格,同时采用表格中的数值画图柱状图和折线图,这里只需要几行代码便可以实. 首先我们需要安装一个Excel操作的库xlrd,这个很简单,在安装Python后 ...

  7. echarts x轴像直尺一样设置刻度_Python matplotlib画图y轴数值不按大小排列问题

    matplotlib 画图的时候经常会出现y轴数据不按大小排列的问题,很混乱,这主要是因为数据类型的错误,导致的!大家可以仔细阅读下以下两个案例,就应该有答案了: 案例一: 昨天偶然做一个爬取数据,做 ...

  8. python 录入数据不重复_python Django批量导入不重复数据

    本文为大家分享了python Django批量导入不重复数据的实现代码,供大家参考,具体内容如下 程序如下: #coding:utf-8 import os os.environ.setdefault ...

  9. python爬虫数据可视化软件_python爬虫及数据可视化分析

    1.前言 本篇文章主要介绍python爬虫及对爬取的数据进行可视化分析,本次介绍所用的网站是(https://www.duanwenxue.com/jingdian/zheli/) 2.数据爬取 2. ...

  10. python做动态折线图_python matplotlib折线图样式实现过程

    python matplotlib 同时画箱线图和折线图的问题 python3 matplotlib画两个折线图,X轴相同,Y轴生...你的memo和cpui里面是字符串,不是数字 将memo.app ...

最新文章

  1. 微信小程序 加载中 动画效果
  2. window与共享文件夹访问相关的四个服务
  3. 台式计算机不能有线上网,台式电脑怎么样不能有线就可以连接网络,赶紧看看...
  4. intellij idea 实用快捷键
  5. [IIS] [PHP] 500.19 随机出现
  6. java 学习(一)冒泡排序
  7. 承载千万级并发的分布式系统架构设计思想
  8. 83. 删除排序链表中的重复元素 golang
  9. tomcat 请求超时_高并发环境下如何优化Tomcat性能?看完我懂了!
  10. 设计模式学习之单例模式
  11. 谷歌:修复0day漏洞的平均耗时比3年前减少28天
  12. python大作业五子棋人人对战_五子棋总结(人人对战)
  13. babel import语法 js_webstorm配置babel自动转译es6的两种方法
  14. js调用数科阅读器_使用 Vue 和 epub.js 制作电子书阅读器
  15. 黑客站在 ATM 面前,机器就直接吐出钞票,他们是怎么做到的?
  16. 如何使用免费软件实现iPad当Windows电脑副屏的效果
  17. 24小时 java_Java获取24小时制的时间方法
  18. Flutter——Flutter初探与Dart基础
  19. 2020的Android凉了?聊聊 Android 现状及出路!
  20. 12.静态路由、静态缺省路由

热门文章

  1. WKWebView刷新URL
  2. 高手对中科院考博英语的分享
  3. MAC电脑新手入门指南
  4. 如何使用kali的Searchsploit查找软件漏洞
  5. Docker玩转Rhadoop
  6. Oracle BI系统排名?Oracle BI办公系统怎么选?什么是用户口碑最好的Oracle BI系统?
  7. 高级字符驱动程序操作之休眠(理论篇)
  8. 储能系统双向DCDC变换器蓄电池充放电仿真模型有buck模式和boost模式,依靠蓄电池充放电维持直流母线电压平衡
  9. 微软易升级服务器,通过“微软Windows10易升”升级Win10 1803全程图解
  10. 基于matlab的声音个数识别