现在python这门解释型语言被越来越多的人们喜欢,强大的库支持,使得编程过程变得简单。

我是一个传统的C语言支持者,往后也打算慢慢的了解Python的强大。

今天我就学习一下使用python实现数据可视化。

参考:https://mp.weixin.qq.com/s/Nb2ci6d5MhoRoepu6G3YdQ

1 安装依赖库

——

◈ NumPy 用于简化数组和矩阵的操作

◈ SciPy 用于数据科学

◈ Matplotlib 用于绘图

在windows下我使用Pycharm作为IDE,安装库也十分方便,直接在包管理工具终添加即可,如果超时无法下载,可以参照我之前的博客换成国内源。

2 导入依赖包

——

import numpy as np #使用as重命名

from scipy import stats #可以只导入包的一部分

import matplotlib.pyplot as plt #import matplotlib.pyplot == from matplotlib import pyplot

3 定义变量

——

python中的变量在第一次赋值时被声明,变量类型由分配给变量的值推断。习惯上,不使用大写字母命名。

input_file_name = "anscombe.csv"

delimiter = "\t" #数据之间的分隔符

skip_header = 3 #文件开头要跳过的行

column_x = 0

column_y = 1

4 读取数据

——

毫无疑问,我们要事先得到需要可视化的数据:

(这里我们只对四个部分中部分一的进行处理)

使用 NumPy 中函数 genfromtxt() 读取 CSV 文件非常容易,该函数生成 NumPy 数组:

data = np.genfromtxt(input_file_name, delimiter = delimiter, skip_header = skip_header)

在 Python 中,一个函数可以有数量可变的参数,你可以通过指定所需的参数来传递一个参数的子集。数组是非常强大的矩阵状对象,可以很容易地分割成更小的数组:

这里的:就指代全部选择

x = data[:, column_x] #x取所有行的column_x列

y = data[:, column_y] #y取所有行的column_y列

5 拟合数据

——

SciPy 提供了方便的数据拟合功能,例如 linregress() 函数提供了一些与拟合相关的重要值,如斜率、截距和两个数据集的相关系数:

slope, intercept, r_value, p_value, std_err =stats.linregress(x, y)print("Slope: {:f}".format(slope))print("Intercept: {:f}".format(intercept))print("Correlation coefficient: {:f}".format(r_value))

因为 linregress() 提供了几条信息,所以结果可以同时保存到几个变量中。

6 绘图

——

Matplotlib 库仅仅绘制数据点,因此,你应该定义要绘制的点的坐标。已经定义了 x 和 y 数组,所以你可以直接绘制它们,但是你还需要更多的点来画直线。

linspace() 函数可以方便地在两个值之间生成一组等距值。再利用强大的 NumPy 数组可以轻松计算纵坐标,该数组可以像普通数值变量一样在公式中使用

fit_x = np.linspace(x.min() - 1, x.max() + 1, 100) #随机生成100个线性数据

fit_y = slope * fit_x + intercept

要绘图,首先,定义一个包含所有图形的图形对象:

fig_width = 7 #inch

fig_height = fig_width / 16 * 9 #inch

fig_dpi = 100fig= plt.figure(figsize = (fig_width, fig_height), dpi = fig_dpi)

参数也非常好理解,最后调用figure()函数生成一个图形。

一个图形可以画几个图;在 Matplotlib 中,这些图被称为轴。本示例定义一个单轴对象来绘制数据点:

ax = fig.add_subplot(111)

ax.plot(fit_x, fit_y, label= "Fit", linestyle = '-')

ax.plot(x, y, label= "Data", marker = '.', linestyle = '')

ax.legend()

ax.set_xlim(min(x)- 1, max(x) + 1)

ax.set_ylim(min(y)- 1, max(y) + 1)

ax.set_xlabel('x')

ax.set_ylabel('y')

如果要保存图片,有:

fig.savefig('fit_python.png')

如果要显示(而不是保存)该绘图,请调用:

plt.show()

7 结果

——

终端输出:

生成图像:

怎么样,感觉还不错吧,Python真是个好用的工具,以后会更新更多的实用的案例~

完整代码:

import numpy as np #使用as重命名

from scipy import stats #可以只导入包的一部分

import matplotlib.pyplot as plt #import matplotlib.pyplot == from matplotlib import pyplot

input_file_name= "anscombe.csv"delimiter= "\t" #数据之间的分隔符

skip_header = 2 #文件开头要跳过的行

column_x =0

column_y= 1

print("#### Anscombe's first set with Python ####")

data= np.genfromtxt(input_file_name, delimiter = delimiter, skip_header =skip_header)

x= data[:, column_x] #x取所有行的column_x列

y = data[:, column_y] #y取所有行的column_y列

slope, intercept, r_value, p_value, std_err=stats.linregress(x, y)print("Slope: {:f}".format(slope))print("Intercept: {:f}".format(intercept))print("Correlation coefficient: {:f}".format(r_value))

fit_x= np.linspace(x.min() - 1, x.max() + 1, 100) #随机生成100个线性数据

fit_y = slope * fit_x +intercept

fig_width= 7 #inch

fig_height = fig_width / 16 * 9 #inch

fig_dpi = 100fig= plt.figure(figsize = (fig_width, fig_height), dpi =fig_dpi)

ax= fig.add_subplot(111)

ax.plot(fit_x, fit_y, label= "Fit", linestyle = '-')

ax.plot(x, y, label= "Data", marker = '.', linestyle = '')

ax.legend()

ax.set_xlim(min(x)- 1, max(x) + 1)

ax.set_ylim(min(y)- 1, max(y) + 1)

ax.set_xlabel('x')

ax.set_ylabel('y')

plt.show()

python数据可视化代码_Python实现简单的数据可视化相关推荐

  1. python编写爬虫代码_python编写简单爬虫资料汇总

    爬虫真是一件有意思的事儿啊,之前写过爬虫,用的是urllib2.BeautifulSoup实现简单爬虫,scrapy也有实现过.最近想更好的学习爬虫,那么就尽可能的做记录吧.这篇博客就我今天的一个学习 ...

  2. python分形曲线代码_Python生成简单分形

    康托集 代码: # 康托集 import pygame pygame.init() screen = pygame.display.set_caption('康托集') screen = pygame ...

  3. python 三维地球代码_Python地图可视化三大秘密武器

    Python地图可视化库有大家熟知的pyecharts.plotly.folium,还有稍低调的bokeh.basemap.geopandas,也是地图可视化不可忽视的利器. 这次就来介绍下这三位低调 ...

  4. hbuilderx简单网页代码_Python爬取网页数据

    都说python爬网页数据方便,我们今天就来试试,python爬取数据到底有多方便 简介 爬取数据,基本都是通过网页的URL得到这个网页的源代码,根据源代码筛选出需要的信息 准备 IDE:PyChar ...

  5. python二手交易平台代码_PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)...

    说明 文章首发于HURUWO的博客小站,本平台做同步备份发布. 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览. 原文链接 PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二 ...

  6. python计算营业额代码_python计算营业额的代码_python 统计代码行数简单实例

    python 统计代码行数简单实例 送测的时候,发现需要统计代码行数 于是写了个小程序统计自己的代码的行数. #calclate_code_lines.py import os def afileli ...

  7. python 可视化案例_Python之路 08 数据可视化案例

    可视化练习:Kaggle共享单车项目 项目链接:Bike Sharing Demand | Kaggle​www.kaggle.com 1. 提出问题(Business Understanding) ...

  8. python动态爱心代码_python 动态绘制爱心的示例

    python 动态绘制爱心的示例 代码 import turtle turtle.bgcolor("black") turtle.pensize(2) sizeh = 1.2 de ...

  9. pythongui可视化编程_Python Qt GUI与数据可视化编程

    商品参数 Python Qt GUI与数据可视化编程 定价 99.00 出版社 人民邮电出版社 版次 dy 版 出版时间 2019年09月 开本 16 作者 王维波 等 装帧 平装 页数 488 字数 ...

最新文章

  1. 用于道路目标检测的少镜头学习
  2. 精彩回顾|《图像对齐算法》
  3. 互联网协议 — OAuth2 第三方授权协议
  4. everything文件搜索_Everything,闪电搜索,百万文件100%秒搜,真是文件搜索神器!...
  5. [实践系列]Promises/A+规范
  6. VUE.js 中取得后台原生HTML字符串 原样显示问题
  7. metasploitable3渗透测试
  8. HADOOP__PIG安装与配置
  9. Mysql 命令行控制事务
  10. 知名IT公司的年度大会合集
  11. 2016-05-06
  12. vue开发:前端项目模板
  13. 病毒式传播ip_病毒式传播后网络安全实践的简单指南
  14. 中国步进电机市场现状研究分析与发展前景预测报告(2022)
  15. Goldendict 1.5.0 VS2015 Qt 5.7 源代码编译
  16. QQ空间g_tk算法的JS脚本的获取和分析
  17. win10找不到打印机_WIN10打印机共享设置
  18. LVS模式一:DR模式(ipvsadm)
  19. 《Java 开发手册》读后感
  20. python维语翻译中文_维文、藏文等特殊语种翻译

热门文章

  1. w7 mysql不启动_Win7安装mysql5.7服务无法启动没有任何报错信息处理:
  2. 数据结构之栈与队列(二)
  3. Deep Learning of Binary Hash Codes for Fast Image Retrieval(2015)
  4. 数据科学入门与实战:玩转pandas实战项目分析航班晚点情况
  5. oracle主备机密码文件不同步,oracle主备同步问题
  6. c#如何实现在datagridview中加入时间控件、numericupanddown控件
  7. 1gb 云服务器 和2gb的区别_(12)虚拟主机/VPS/云主机/服务器有什么区别?
  8. 北京计算机组织专家对,全球顶级专家齐聚北京 探讨计算机产业“大挑战”
  9. 获得百度智能云access token
  10. python换算消费品价格,做折实