Python绘图与可视化

Python有很多可视化工具,本篇只介绍Matplotlib。

Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,它可以在Python脚本、IPython的交互环境下、Web应用程序中使用。该项目是由John Hunter于2002年启动的,其目的是为Python构建一个MATLAB式的绘图接口。如果结合使用一种GUI工具包(如IPython),Matplotlib还具有诸如缩放和平移等交互功能。它不仅支持各种操作系统上许多不同的GUI后端,而且还能将图片导出为各种常见的食量(vector)和光栅(raster)图:PDF、SVG、JPG、PNG、BMP、GIF等。

Matplotlib程序包



所谓“一图胜千言”,我们很多时候需要通过可视化的方式查看、分析数据,虽然Pandas中也有一些绘图操作,但是相比较而言,Matplotlib在绘图显示效果方面更加出色。Python为Matplotlib提供了一个方便的接口,我们可以通过Pyplot对Matplotlib进行操作,多数情况下,Pyplot的命令与MATLAB有些相似。

导入Matplotlib包进行简单的操作(此处需要安装pip install matplotlib):

import matplotlib.pyplot as plt#约定俗成的写法plt
#首先定义两个函数(正弦&余弦)
import numpy as np

X=np.linspace(-np.pi,np.pi,256,endpoint=True)#-π to+π的256个值
C,S=np.cos(X),np.sin(X)
plt.plot(X,C)
plt.plot(X,S)
#在ipython的交互环境中需要这句话才能显示出来
plt.show()

输出结果:

绘图命令的基本架构及其属性设置



上面的例子我们可以看出,几乎所有的属性和绘图的框架我们都选用默认设置。现在我们来看Pyplot绘图的基本框架是什么,用过Photoshop的人都知道,作图时先要定义一个画布,此处的画布就是Figure,然后再把其他素材“画”到该Figure上。

1)在Figure上创建子plot,并设置属性

x=np.linspace(0,10,1000)#X轴数据
y1=np.sin(x)#Y轴数据
y2=np.cos(x**2)#Y轴数据  x**2即x的平方

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

plt.plot(x,y1,label="$sin(x)$",color="red",linewidth=2)#将$包围的内容渲染为数学公式
plt.plot(x,y2,"b--",label="$cos(x^2)$")
#指定曲线的颜色和线性,如‘b--’表示蓝色虚线(b:蓝色,-:虚线)

plt.xlabel("Time(s)")
plt.ylabel("Volt")
plt.title("PyPlot First Example")

‘‘‘
使用关键字参数可以指定所绘制的曲线的各种属性:
label:给曲线指定一个标签名称,此标签将在图标中显示。如果标签字符串的前后都有字符‘$‘,则Matplotlib会使用其内嵌的LaTex引擎将其显示为数学公式
color:指定曲线的颜色。颜色可以用如下方法表示
       英文单词
       以‘#’字符开头的3个16进制数,如‘#ff0000’表示红色。
       以0~1的RGB表示,如(1.0,0.0,0.0)也表示红色。
linewidth:指定权限的宽度,可以不是整数,也可以使用缩写形式的参数名lw。
‘‘‘

plt.ylim(-1.5,1.5)
plt.legend()#显示左下角的图例

plt.show()

2)在Figure上创建多个子plot

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

fig1=plt.figure(2)
plt.subplot(211)
#subplot(211)把绘图区域等分为2行*1列共两个区域,然后在区域1(上区域)中创建一个轴对象
plt.subplot(212)#在区域2(下区域)创建一个轴对象
plt.show()

输出结果:

我们还可以通过命令再次拆分这些块(相当于Word中拆分单元格操作)

f1=plt.figure(5)#弹出对话框时的标题,如果显示的形式为弹出对话框的话
plt.subplot(221)
plt.subplot(222)
plt.subplot(212)
plt.subplots_adjust(left=0.08,right=0.95,wspace=0.25,hspace=0.45)
# subplots_adjust的操作时类似于网页css格式化中的边距处理,左边距离多少?
# 右边距离多少?这取决于你需要绘制的大小和各个模块之间的间距
plt.show()

输出结果:

3)通过Axes设置当前对象plot的属性

以上我们操作的是在Figure上绘制图案,但是当我们绘制图案过多,又需要选取不同的小模块进行格式化设置时,Axes对象就能很好地解决这个问题。

fig,axes=plt.subplots(nrows=2,ncols=2)#定一个2*2的plot
plt.show()

输出结果:

现在我们需要通过命令来操作每个plot(subplot),设置它们的title并删除横纵坐标值。

fig,axes=plt.subplots(nrows=2,ncols=2)#定一个2*2的plot
axes[0,0].set(title=‘Upper Left‘)
axes[0,1].set(title=‘Upper Right‘)
axes[1,0].set(title=‘Lower Left‘)
axes[1,1].set(title=‘Lower Right‘)

# 通过Axes的flat属性进行遍历
for ax in axes.flat:
#     xticks和yticks设置为空置
    ax.set(xticks=[],yticks=[])
plt.show()

输出结果:

另外,实际来说,plot操作的底层操作就是Axes对象的操作,只不过如果我们不使用Axes而用plot操作时,它默认的是plot.subplot(111),也就是说plot其实是Axes的特例。

4)保存Figure对象

最后一项操作就是保存,我们绘图的目的是用在其他研究中,或者希望可以把研究结果保存下来,此时需要的操作时save。

plt.savefig(r"C:\Users\123\Desktop\save_test.png",dpi=520)#默认像素dpi是80

很明显保存的像素越高,内存越大。此处只是用了savefig属性对Figure进行保存。

另外,除了上述的基本操作之外,Matplotlib还有其他的绘图优势,此处只是简单介绍了它在绘图时所需要注意的事项,更多的属性设置请参考:https://matplotlib.org/api/

Seaborn模块介绍



前面我们简单介绍了Matplotlib库的绘图功能和属性设置,对于常规性的绘图,使用Pandas的绘图功能已经足够了,但如果对Matplotlib的API属性研究较为透彻,几乎没有不能解决的问题。但是Matplotlib还是有它的不足之处,Matplotlib自动化程度非常高,但是,掌握如何设置系统以便获得一个吸引人的图是相当困难的事。为了控制Matplotlib图表的外观,Seaborn模块自带许多定制的主题和高级的接口。

1)未加Seaborn模块的效果

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

np.random.seed(sum(map(ord,"aesthetics")))
#首先定义一个函数用来画正弦函数,可帮助了解可以控制的不同风格参数
def sinplot(flip=1):
    x=np.linspace(0,14,100)
    for i in range(1,7):
        plt.plot(x,np.sin(x+i*0.5)*(7-i)*flip)
sinplot()
plt.show()

输出结果:

2)加入Seaborn模块的效果

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

# 添加了Seaborn模块

np.random.seed(sum(map(ord,"aesthetics")))
#首先定义一个函数用来画正弦函数,可帮助了解可以控制的不同风格参数
def sinplot(flip=1):
    x=np.linspace(0,14,100)
    for i in range(1,7):
        plt.plot(x,np.sin(x+i*0.5)*(7-i)*flip)
#转换成Seaborn模块,只需要引入seaborn模块
import seaborn as sns#添加Seaborn模块
sinplot()
plt.show()

输出效果:

小编使用的jupyter notebook编辑器,使用与不使用Seaborn模块效果差别不明显。

使用Seaborn的优点有:

  1. Seaborn默认浅灰色背景与白色网格线的灵感来源于Matplotlib,却比Matplotlib的颜色更加柔和
  2. Seaborn把绘图风格参数与数据参数分开设置。

其中,Seaborn有两组函数对风格进行控制:axes_style()/set_style()函数和plotting_context()/set_context()函数。

axes_style()函数和plotting_context()函数返回参数字典,set_style()函数和set_context()函数设置Matplotlib。

使用set_style()函数

import seaborn as sns

‘‘‘
Seaborn有5种预定义的主题:
darkgrid(灰色背景+白网格)
whitegrid(白色背景+黑网格)
dark(仅灰色背景)
white(仅白色背景)
ticks(坐标轴带刻度)
默认的主题是darkgrid,修改主题可以使用set_style函数
‘‘‘
sns.set_style("whitegrid")
sinplot()#即上段代码中定义的函数
plt.show()

输出结果:

使用set_context()函数

‘‘‘
上下文(context)可以设置输出图片的大小尺寸(scale)
Seaborn中预定义的上下文有4种:paper、notebook、talk和poster
默认使用notebook上下文
‘‘‘
sns.set_context("poster")
sinplot()#即前文定义的函数
plt.show()

输出结果:

使用Seaborn“耍酷”

然而Seaborn不仅能够用来更改背景颜色,或者改变画布

原文地址:https://www.cnblogs.com/dudududu/p/9149762.html

时间: 2024-10-16 01:46:06

Python绘图与可视化的相关文章

Python 绘图与可视化 seaborn

Seaborn是一个基于matplotlib的Python数据可视化库.它提供了一个高级界面,用于绘制有吸引力且信息丰富的统计图形. 主页:http://seaborn.pydata.org/ 官方教程:http://seaborn.pydata.org/tutorial.html#tutorial 功能介绍:http://seaborn.pydata.org/introduction.html#introduction 设置样式的:https://www.cnblogs.com/gczr/p/

Python 绘图与可视化 matplotlib 制作Gif动图

参考链接:https://blog.csdn.net/theonegis/article/details/51037850 我们可以使用Matplotlib的animation类的FuncAnimation()方法来制作动画,只需要提供一个动态更新数据的函数 需要注意的是,这个函数需要以元组的形式返回一个需要在下一次绘图中更新的数据 一个拥有详细解释的实例的链接:http://codingpy.com/article/drawing-gifs-with-matplotlib 有两点需要注意 图里

Python 绘图与可视化 matplotlib text 与transform

Text 为plots添加文本或者公式,反正就是添加文本了 参考链接:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.text.html#matplotlib.pyplot.text 参考链接(应用):https://matplotlib.org/tutorials/text/text_intro.html#sphx-glr-tutorials-text-text-intro-py 简单使用:(更多例子见应用) #参数介绍: matplo

《利用python进行数据分析》读书笔记--第八章 绘图和可视化

http://www.cnblogs.com/batteryhp/p/5025772.html python有许多可视化工具,本书主要讲解matplotlib.matplotlib是用于创建出版质量图表的桌面绘图包(主要是2D方面).matplotlib的目的是为了构建一个MATLAB式的绘图接口.本书中的大部分图都是用它生成的.除了图形界面显示,还可以把图片保存为pdf.svg.jpg.png.gif等形式. 1.matplotlib API入门 Ipython可以用close()关闭界面.

Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识

第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 第9节 绘图和可视化 pandas 回顾 一.实验简介 学习数据分析的课程,需要同学们掌握好 Python 的语言基础,和对 Numpy 与 Matplotlib 等基本库有一些了解.同学们可以参考学习实验楼的 Python 语言基础教程与 Python 科学计算的课程. pandas 是后面我们

Py修行路 Matplotlib 绘图及可视化模块

Matplotlib是一个强大的Python绘图和数据可视化的工具包. 安装方法:pip install matplotlib 引用方法:import matplotlib.pyplot as plt 绘图方法 绘图函数:plt.plot() #调用函数生成图像 显示图像:plt.show() #显示图像 注意:每显示一次就会把创建的图对象数据清空,当需要再次显示的话,就需要再创建一个数据 绘图函数语法:plt.plot(["数据1","数据2","数据3

ipython ---matplotlib:绘图和可视化

定义: Matplotlib是一个强大的Python绘图和数据可视化的工具包. 安装方法:pip install matplotlib 引用方法:import matplotlib.pyplot as plt 绘图函数:plt.plot() 显示图像:plt.show() 原文地址:https://www.cnblogs.com/52forjie/p/8379968.html

Matplotlib:绘图和可视化

Matplotlib:绘图和可视化 简介 简单绘制线形图 plot函数 支持图类型 保存图表 一 .简介 Matplotlib是一个强大的Python绘图和数据可视化的工具包.数据可视化也是我们数据分析的最重要的工作之一,可以帮助我们完成很多操作,例如:找出异常值.必要的一些数据转换等.完成数据分析的最终结果也许就是做一个可交互的数据可视化. 安装方式: pip install matplotlib 引用方法: import matplotlib.pyplot as plt 二 .简单绘制线形图

python绘图(一)

入python绘图坑 今天开始机器学习. 赶快学会matplotlib,numpy和scipy里的一万个函数 这里是matplotlib官网例程 让我嘚瑟一下 import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 1000) y = np.sin(x) z = np.cos(x**2) plt.figure(figsize=(8,4)) plt.plot(x,y,label="$sin(x)$"