6种python数据可视化工具,python数据可视化工具包

大家好,小编来为大家解答以下问题,数据可视化属于python应用领域吗,python中用于数据可视化的模块,现在让我们一起来看看吧!

文章目录一、数据可视化介绍

二、matplotlib和pandas画图1.matplotlib简介和简单使用

2.matplotlib常见作图类型

3.使用pandas画图

4.pandas中绘图与matplotlib结合使用

三、订单数据分析展示

四、Titanic灾难数据分析显示

一、数据可视化介绍

数据可视化是指将数据放在可视环境中、进一步理解数据的技术,可以通过它更加详细地了解隐藏在数据表面之下的模式、趋势和相关性。

Python提供了很多数据可视化的库:

matplotlib

是Python基础的画图库,官网为https://matplotlib.org/,在案例地址https://matplotlib.org/gallery/index.html中介绍了很多种类的图和代码示例python用turtle画简单树形图

pandas

是在matplotlib的基础上实现画图的,官网为https://pandas.pydata.org/。

matlpotlib和pandas结合

利用pandas进行数据读取、数据清洗和数据选取等操作,再使用matlpotlib显示数据。

二、matplotlib和pandas画图

1.matplotlib简介和简单使用

matplotlib是Python最著名的绘图库,它提供了一整套和Matlab相似的命令API,十分适合

交互式地进行制图;也可以方便地将它作为绘图控件,嵌入GUI应用程序中。

文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源代码。如果需要绘制某种类型的图,只需要在这个页面中进行简单的浏览、复制、粘贴,就能实现画图。

https://matplotlib.org/gallery.html中有大量的缩略图案例可以使用。

matplotlib画图的子库:

pyplot子库

提供了和matlab类似的绘图API,方便用户快速绘制2D图表。

pylab模块

其中包括了许多numpy和pyplot中常用的函数,方便用户快速进行计算和绘图,可以用于IPython中的快速交互式使用。

使用matplotlib快速绘图导入库和创建绘图对象如下:

import matplotlib.pyplot as plt

plt.figure(figsize=(8,4))

创建绘图对象时,同时使它成为当前的绘图对象。

通过figsize参数可以指定绘图对象的宽度和高度,单位为英寸;

dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80。

因此本例中所创建的图表窗口的宽度为8*80 = 640像素。

也可以不创建绘图对象直接调用plot方法绘图,matplotlib会自动创建一个绘图对象。

如果需要同时绘制多幅图表的话,可以给figure传递一个整数参数指定图标的序号,如果所指定序号的绘图对象已经存在的话,将不创建新的对象,而只是让它成为当前绘图对象。

pyplot画图简单使用如下:

import numpy as np

import matplotlib.pyplot as plt # 首先载入matplotlib的绘图模块pyplot,并且重命名为plt

x = np.linspace(0, 10, 1000)

y = np.sin(x)

z = np.cos(x**2)

plt.figure(figsize=(8,4)) #2 创建绘图对象

plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2)

plt.plot(x,z,"b--",label="$cos(x^2)$")

plt.xlabel("Time(s)")

plt.ylabel("Volt")

plt.title("PyPlot First Example")

plt.ylim(-1.2,1.2)

plt.legend()

plt.show()

显示:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NVRkVFQ1I=,size_16,color_FFFFFF,t_70#pic_center

其中:

plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2)

plt.plot(x,z,"b--",label="$cos(x^2)$")

第一行将x、y数组传递给plot之后,用关键字参数指定各种属性:

label

给所绘制的曲线取一个名字,用于在图示(legend)中显示;

在字符串前后添加$符号,就会使用内置的latex引擎绘制数学公式。

color

指定曲线的颜色:颜色可以用英文单词,或者以#字符开头的三个16进制数,例如#ff0000表示红色,或者用值在0到1范围之内的三个元素的元组表示,例如(1.0, 0.0, 0.0)也表示红色。

linewidth

指定曲线的宽度,可以不是整数,也可以使用缩写形式的参数名lw。

曲线样式

第三个参数b--指定曲线的颜色和线型,它通过一些易记的符号指定曲线的样式,其中’b’表示蓝色,’–’表示线型为虚线。

在IPython中输入plt.plot?可以查看格式化字符串以及各个参数的详细说明。

plt.xlabel("Time(s)")

plt.ylabel("Volt")

plt.title("PyPlot First Example")

plt.ylim(-1.2,1.2)

plt.legend()

通过一系列函数设置当前Axes对象的各个属性:

xlabel、ylabel

分别设置X、Y轴的标题文字。

title

设置子图的标题。

xlim、ylim

分别设置X、Y轴的显示范围。

legend

显示图示,即图中表示每条曲线的标签(label)和样式的矩形区域。

最后调用plt.show()显示出绘图窗口。

一个绘图对象(figure)可以包含多个轴(axis),在Matplotlib中用轴表示一个绘图区域,可以将其理解为子图。上面的第一个例子中,绘图对象只包括一个轴,因此只显示了一个轴(子图Axes)。可以使用subplot函数快速绘制有多个轴的图表。

subplot函数的调用形式如下:

subplot(numRows, numCols, plotNum)

subplot将整个绘图区域等分为numRows行和numCols列个子区域,然后按照从左到右、从上到下的顺序对每个子区域进行编号,左上的子区域的编号为1。

如果numRows、numCols和plotNum这三个数都小于10的话,可以把它们缩写为一个整数,例如subplot(323)和subplot(3,2,3)是相同的。

subplot在plotNum指定的区域中创建一个轴对象,如果新创建的轴和之前创建的轴重叠,之前的轴将被删除。

如下:

for idx, color in enumerate("rgbyck"):

plt.subplot(320+idx+1, facecolor=color)

plt.show()

显示:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NVRkVFQ1I=,size_16,color_FFFFFF,t_70#pic_center

可以看到:

创建3行2列共6个轴,通过facecolor参数给每个轴设置不同的背景颜色。

如果希望某个轴占据整个行或者列的话,可以如下:

plt.subplot(221) # 第一行的左图

plt.subplot(222) # 第一行的右图

plt.subplot(212) # 第二整行

plt.show()

显示:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NVRkVFQ1I=,size_16,color_FFFFFF,t_70#pic_center

再举一个创建子图的例子:

plt.figure(1) # 创建图表1

plt.figure(2) # 创建图表2

ax1 = plt.subplot(211) # 在图表2中创建子图1

ax2 = plt.subplot(212) # 在图表2中创建子图2

x = np.linspace(0, 3, 100)

for i in range(5):

plt.figure(1) # 选择图表1

plt.plot(x, np.exp(i*x/3))

plt.sca(ax1) # 选择图表2的子图1 Set the current Axes instance to ax.

plt.plot(x, np.sin(i*x))

plt.sca(ax2) # 选择图表2的子图2

plt.plot(x, np.cos(i*x))

plt.show()

显示:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NVRkVFQ1I=,size_16,color_FFFFFF,t_70#pic_center

首先通过figure()创建了两个图表,它们的序号分别为1和2;

然后在图表2中创建了上下并排的两个子图,并用变量ax1和ax2保存。

在循环中:

先调用figure(1)让图表1成为当前图表,并在其中绘图。

然后调用sca(ax1)和sca(ax2)分别让子图ax1和ax2成为当前子图,并在其中绘图。

当它们成为当前子图时,包含它们的图表2也自动成为当前图表,因此不需要调用figure(2)依次在图表1和图表2的两个子图之间切换,逐步在其中添加新的曲线即可。

其中,twinx()可以为图增加纵坐标轴,使用如下:

x = np.arange(1, 21, 0.1)

y1 = x * x

y2 = np.log(x)

plt.plot(x, y1)

# 添加一条y轴的坐标轴

plt.twinx()

plt.plot(x, y2)

plt.show()

显示:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NVRkVFQ1I=,size_16,color_FFFFFF,t_70#pic_center

进一步使用如下:

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(1, 20, 1)

y1 = x * x

y2 = np.log(x)

fig = plt.figure()

ax1 = fig.add_subplot(111)

ax1.plot(x, y1, label = "$y1 = x * x$", color = "r")

ax1.legend(loc = 0)

# 设置对应坐标轴的名称

ax1.set_ylabel("y1")

ax1.set_xlabel("Compare y1 and y2")

# 设置x轴刻度的数量

ax = plt.gca()

ax.locator_params("x", nbins = 20)

# 添加坐标轴,并在新添加的坐标轴中画y2 = log(x)图像

ax2 = plt.twinx()

ax2.set_ylabel("y2")

ax2.plot(x, y2, label = "$y2 = log(x)$")

ax2.legend(loc = 0)

plt.show()

显示:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NVRkVFQ1I=,size_16,color_FFFFFF,t_70#pic_center

2.matplotlib常见作图类型

画图在工作中在所难免,尤其在进行数据探索时显得尤其重要,常见的一些作图种类如下:

散点图

条形图

饼图

三维图

先导入库和基础配置如下:

from __future__ import division

from numpy.random import randn

import numpy as np

import os

import matplotlib.pyplot as plt

np.random.seed(12345)

plt.rc('figure

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值