Python高级数据分析之pandas和matplotlib绘图

目录
  • 一、matplotlib 库
  • 二、Pandas绘图
    • 1.绘制简单的线型图
      • 1.1)简单的Series图表示例 .plot()
      • 1.2) 两个Series绘制的曲线可以叠加
    • 2.数据驱动的线型图(分析苹果股票)
    • 3.绘制简单的柱状图
    • 4.绘制简单的直方图
    • 5.绘制简单的核密度(“ked”)图
    • 6.绘制简单的散点图
  • 总结

一、matplotlib 库

一个用来绘图的库

import matplotlib.pyplot as plt

1)plt.imread(“图片路径”)

功能: 将图片加载后返回一个维数组

>>> jin = plt.imread("./jin.png")
>>> jin
array([[[0.24313726, 0.24313726, 0.24705882],
        ...,

        [0.7294118 , 0.7294118 , 0.7294118 ]]], dtype=float32)

>>> jin.shpae
(273, 411, 3)
'''
这是一个三维数组
第一层代表将图片分成273行,
第二层代表将图片的第一层的每一行分为411列,
第三层代表将每一像素点中的(R,G,B)

注意:有些图片加载后最内层有4个元素,分别是(R,G,B,A[阿尔法/透明度])

'''

2)plt.imshow(ndarray)显示图片

功能: 将多维数组渲染为一张图片

>>> plt.imshow(nd)  #将加载后的多维数组传入就可以将图片渲染出来
'''
有的图片加载出来之后数据范围在0-255之间的需要将数据/255之后转化为0-1之间的就可以和0-1的图片进行合并操作
'''

这里就可以将图片进行处理(反转,拉伸,改色)等操作

3)plt.imsave(ndarray)保存图片

plt.imsave(ndarray)

默认保存到当前路径

plt.imsave('图片名称.png',图片数据,cmap='gray')    #保存图片
cmap:将图片保存为黑白图片

二、Pandas绘图

1.绘制简单的线型图

1.1)简单的Series图表示例 .plot()

绘制正弦曲线

# 正弦曲线
x = np.linspace(0,2*np.pi,100)      # 从0 到 2π  取100份
y = np.sin(x)                       # y 为sin(x) 的值
s = Series(data=y,index=x)          # 构建一个Series对象
s.plot()                  # 使用Series的plot()方法

1.2) 两个Series绘制的曲线可以叠加

2)简单的DataFrame图表示例 .plot()

绘制余弦曲线

x = np.linspace(0,2*np.pi,100)          # 从0 到 2π  取100份
df = DataFrame(data={'sin':np.sin(x),'cos':np.cos(x)},index=x)   #创建DataFrame对象
df.plot()

2.数据驱动的线型图(分析苹果股票)

导包

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

1.读取数据

读取文件AAPL.csv

df = pd.read_csv('./data/AAPL.csv')
df.head()

2.检查数据类型

df.dtypes

Date          object       #时间的数据类型为对象,在使用中需要做处理
Open         float64
High         float64
Low          float64
Close        float64
Adj Close    float64
Volume       float64
dtype: object

3.将’Date’这行数据转换为时间数据类型

pd.to_datetime(Series对象)

功能: 将Series转换为时间数据类型

df['Date']  # 这一列获取出来是一个Series
type(df['Date'])
df['Date'] = pd.to_datetime(df['Date'])

df.dtypes

Date         datetime64[ns]  #此时已经是时间类型的数据了
Open                float64
High                float64
Low                 float64
Close               float64
Adj Close           float64
Volume              float64
dtype: object

4.将’Date’设置为行索引

df.set_index('Date',inplace=True)
'''
inplace:改变原来的变量的值
'''

5.绘制图形,以字段Adj Close(已调整收盘价格)为数据绘制

df['Adj Close'].plot()

3.绘制简单的柱状图

1) Series柱状图示例,kind = ‘bar’/’barh’

随机产生5个数,对其绘制纵向柱状图

'''
data:  生成之后为Y轴的数据
index: 生成之后为X轴的索引
'''
s = Series(data=np.random.randint(0,10,size=5),index=list('abcde'))  #随机产生5个数
s.plot(kind='bar')

随机产生5个数,对其绘制横向柱状图

'''
data:  生成之后为Y轴的数据
index: 生成之后为X轴的索引
'''
s = Series(data=np.random.randint(0,10,size=5),index=list('abcde'))
s.plot(kind='barh')

2) DataFrame柱状图示例

随机产生一个二维数组,并绘制纵向(kind=’bar’)柱状图

'''
index: 生成数据X轴的索引
columns: 特征的名称
'''
df = DataFrame(np.random.randint(0,10,size=(8,4)),index=list('abcdefgh'),columns=list('ABCD'))
df.plot(kind='bar')

随机产生一个二维数组,并绘制横向(kind=’barh’)柱状图

4.绘制简单的直方图

直方图
直方图(Histogram)又称质量分布图。是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。

s = Series(np.random.normal(loc=0,scale=5,size=10000))    # normal 正态分布
s.hist()
#这里模拟出一组以0为中心,标准差为5的正态分布数据, 绘制出的直方图如下

5.绘制简单的核密度(“ked”)图

核心密度估计:对分布的图进行估计核心

我们继续使用刚刚直方图的 Series的正态分布数据

Series(np.random.normal(loc=0,scale=5,size=10000))
s.plot(kind='kde')

直方图一般和核密度图常常被画在一起,既展示出频率,又展示出了概率

有两组数组,我们将这两组数据连接成为一个。

分析这组新数据

ndarr1 = np.random.normal(loc=-10,scale=5,size=5000)  #第一组数据
ndarr2 = np.random.normal(loc=15,scale=2,size=5000)  第二组数据
ndarr = np.concatenate([ndarr1,ndarr2])   #将两组数据合为一组
s = Series(ndarr)    #生成Series对象
s.plot(kind='kde')  # 核心 密度 估计 用来展示某个位置出现内容的概率的估计值
s.hist(density=True)  # density表示直方图也以 密度概率的值来展示  hist用来展示某个位置出现内容的实际频率
#展示效果如下
'''
s.plot(kind='kde')  展示某个位置的估计值
s.hist(density=True)  表示某个位置出现内容的实际频率
'''

6.绘制简单的散点图

散布图是观察两个一维数据数列之间的关系的有效方法

示例数据

df = DataFrame(np.random.randint(0,150,size=(20,3)),columns=['python','math','eng'])
df   #模拟一个DataFrame数据,列名为'python','math','eng'

    python  math    eng
0   141     41      55
1   37      76      96
2   61      28      135
。。。
17  124     103     83
18  86      47      44
19  35      85      85

将这组数据生成散点图

df.plot(kind='scatter',x='python',y='eng')
# kind = 'scatter'  , 给明标签columns

这样其实是没有什么实际的意义的

现在我们再加一列和“python”相关的数据

np.random.randint(-10,10,1)[0]   # 0-10之间 随机取一个数
df['php'] = df['python'].map(lambda x: x*0.9+np.random.randint(-10,10,1)[0])
df

    python  math    eng php
0   121     67      15  113.9
1   148     33      149 123.2
。。。
18  79      77      108 74.1
19  105     107     53  102.5

我们从数据是很难看出来python和php有什么关系

这时我们就可以用散点图来绘制出观察

可以看出有python的值增大,php的值也会增大。

总结

到此这篇关于Python高级数据分析之pandas和matplotlib绘图的文章就介绍到这了,更多相关Python pandas和matplotlib绘图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python绘图库Matplotlib的安装

    本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地 进行制图.Matplotlib的安装可以参见:官网链接 http://matplotlib.org/users/installing.html 安装总结步骤如下: windows 平台上下载.exe格式 直接安装. 1.python下载安装 下载地址:http://www.python.org/download/

  • 对pandas的dataframe绘图并保存的实现方法

    对dataframe绘图并保存: ax = df.plot() fig = ax.get_figure() fig.savefig('fig.png') 可以制定列,对该列各取值作统计: label_dis = df.label.value_counts() ax = label_dis.plot(title='label distribution', kind='bar', figsize=(18, 12)) fig = ax.get_figure() fig.savefig('label_d

  • python绘图pyecharts+pandas的使用详解

    pyecharts介绍 pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒 为避免绘制缺漏,建议全部安装 为了避免下载缓慢,作者全部使用镜像源下载过了 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ echarts-countries-pypkg pip install -i https://pypi.tuna.tsin

  • python之 matplotlib和pandas绘图教程

    不得不说使用python库matplotlib绘图确实比较丑,但使用起来还算是比较方便,做自己的小小研究可以使用.这里记录一些统计作图方法,包括pandas作图和plt作图. 前提是先导入第三方库吧 import pandas as pd import matplotlib.pyplot as plt import numpy as np 然后以下这两句用于正常显示中文标签什么的. plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签

  • 一文教会你pandas plot各种绘图

    目录 一.介绍 1.1参数介绍 1.2其他常用说明 二.举例说明 2.1折线图line 2.2条型图bar 2.3直方图hist 2.4箱型图box 2.5区域图area 2.6散点图scatter 2.7蜂巢图hexbin 2.8饼型图pie 三.其他格式 3.1设置显示中文标题 3.2设置坐标轴显示负号 3.3使用误差线yerr进行绘图 3.4使用layout将目标分成多个子图 3.5使用table绘制表,上图下表 3.6使用colormap设置图的区域颜色 总结 一.介绍 使用pandas

  • 利用numpy+matplotlib绘图的基本操作教程

    简述 Matplotlib是一个基于python的2D画图库,能够用python脚本方便的画出折线图,直方图,功率谱图,散点图等常用图表,而且语法简单.具体介绍见matplot官网. Numpy(Numeric Python)是一个模仿matlab的对python数值运算进行的扩展,提供了许多高级的数值编程工具,如:矩阵数据类型.矢量处理,以及精密的运算库.专为进行严格的数字处理而产生,而且据说自从他出现了以后,NASA就把很多原来用fortran和matlab做的工作交给了numpy来做了,可

  • matplotlib基础绘图命令之imshow的使用

    在matplotlib中,imshow方法用于绘制热图,基本用法如下 import matplotlib.pyplot as plt import numpy as np np.random.seed(123456789) data = np.random.rand(25).reshape(5, 5) plt.imshow(data) 输出结果如下 imshow方法首先将二维数组的值标准化为0到1之间的值,然后根据指定的渐变色依次赋予每个单元格对应的颜色,就形成了热图.对于热图而言,通常我们还需

  • python的绘图工具matplotlib使用实例

    matplotlib是功能十分强大的绘制二维图形的Python模块,它用Python语言实现了MATLAB画图函数的易用性,同时又有非常强大的可定制性.它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中.它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序.因此如果你需要绘制某种类型的图,只需要在这个页面中浏览.复制.粘贴一下,基本上都能搞定! 实例代码如下: 1. 柱状图 import matp

  • pandas数据处理之绘图的实现

    Pandas是Python中非常常用的数据处理工具,使用起来非常方便.它建立在NumPy数组结构之上,所以它的很多操作通过NumPy或者Pandas自带的扩展模块编写,这些模块用Cython编写并编译到C,并且在C上执行,因此也保证了处理速度. 今天我们就来体验一下它的强大之处. 1.创建数据 使用pandas可以很方便地进行数据创建,现在让我们创建一个5列1000行的pandas DataFrame: mu1, sigma1 = 0, 0.1 mu2, sigma2 = 0.2, 0.2 n

  • Python高级数据分析之pandas和matplotlib绘图

    目录 一.matplotlib 库 二.Pandas绘图 1.绘制简单的线型图 1.1)简单的Series图表示例 .plot() 1.2) 两个Series绘制的曲线可以叠加 2.数据驱动的线型图(分析苹果股票) 3.绘制简单的柱状图 4.绘制简单的直方图 5.绘制简单的核密度(“ked”)图 6.绘制简单的散点图 总结 一.matplotlib 库 一个用来绘图的库 import matplotlib.pyplot as plt 1)plt.imread(“图片路径”) 功能: 将图片加载后

  • Python数据分析之matplotlib绘图详解

    目录 多子图 散点图 水平柱状图 同位置柱状图 多子图 figure是绘制对象(可以理解为一个空白的画布),一个figure对象可以包含多个Axes子图,一个Axes是一个绘图区域,不加设置时,Axes为1,且每次绘图其实都是在figure上的Axes上绘图. 我们是在图形对象上面的Axes区域进行作画 1.add_axes():添加区域 2.Matplotlib定义一个axes类,该类的对象称为axes对象(即轴域对象),它指定一个有数值范围限制的绘图区域.再给定一个画布中,可以包含多个axe

  • Python数据分析模块pandas用法详解

    本文实例讲述了Python数据分析模块pandas用法.分享给大家供大家参考,具体如下: 一 介绍 pandas(Python Data Analysis Library)是基于numpy的数据分析模块,提供了大量标准数据模型和高效操作大型数据集所需要的工具,可以说pandas是使得Python能够成为高效且强大的数据分析环境的重要因素之一. pandas主要提供了3种数据结构: 1)Series,带标签的一维数组. 2)DataFrame,带标签且大小可变的二维表格结构. 3)Panel,带标

  • Python matplotlib绘图可视化知识点整理(小结)

    无论你工作在什么项目上,IPython都是值得推荐的.利用ipython --pylab,可以进入PyLab模式,已经导入了matplotlib库与相关软件包(例如Numpy和Scipy),额可以直接使用相关库的功能. 本文作为学习过程中对matplotlib一些常用知识点的整理,方便查找. 这样IPython配置为使用你所指定的matplotlib GUI后端(TK/wxPython/PyQt/Mac OS X native/GTK).对于大部分用户而言,默认的后端就已经够用了.Pylab模式

  • Python数据分析库pandas基本操作方法

    pandas是什么? 是它吗? ....很显然pandas没有这个家伙那么可爱.... 我们来看看pandas的官网是怎么来定义自己的: pandas is an open source, easy-to-use data structures and data analysis tools for the Python programming language. 很显然,pandas是python的一个非常强大的数据分析库! 让我们来学习一下它吧! 1.pandas序列 import nump

  • 解决Python Matplotlib绘图数据点位置错乱问题

    在绘制正负样本在各个特征维度上的CDF(累积分布)图时出现了以下问题: 问题具体表现为: 1.几个负样本的数据点位置倒错 2.X轴刻度变成了乱七八糟一团鬼东西 最终解决办法 造成上述情况的原因其实是由于输入matplotlib.plot()函数的数据x_data和y_data从CSV文件中直接导入后格式为string,因此才会导致所有数据点的x坐标都被直接刻在了x轴上,且由于坐标数据格式错误,部分点也就表现为"乱点".解决办法就是导入x,y数据后先将其转化为float型数据,然后输入p

  • python使用Matplotlib绘图及设置实例(用python制图)

    目录 一.初识matplotlib.pyplot 1.绘制图像 2.设置图片大小 3.保存图片文件 4.设置X,Y轴刻度范围 5.添加描述信息(标题.轴标签) 6.设置显示中文(导入字体模块) 7.绘制网格 二.常见绘图属性设置 1.绘图符号(Makers) 2.线型(Line Styles) 3.颜色缩写(Colors) 4.Windows字体中英文名称对照 面向对象方式绘图 配置对象的属性 绘制多个子图 三.Artist对象 Artist对象进行绘图的流程 设置Artist属性 一些例子 F

  • 基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解

    Pyplot matplotlib.pyplot是一个命令型函数集合,它可以让我们像使用MATLAB一样使用matplotlib.pyplot中的每一个函数都会对画布图像作出相应的改变,如创建画布.在画布中创建一个绘图区.在绘图区上画几条线.给图像添加文字说明等.下面我们就通过实例代码来领略一下他的魅力. import matplotlib.pyplot as plt plt.plot([1,2,3,4]) plt.ylabel('some numbers') plt.show() 上图是我们通

  • 学习python中matplotlib绘图设置坐标轴刻度、文本

    总结matplotlib绘图如何设置坐标轴刻度大小和刻度. 上代码: from pylab import * from matplotlib.ticker import MultipleLocator, FormatStrFormatter xmajorLocator = MultipleLocator(20) #将x主刻度标签设置为20的倍数 xmajorFormatter = FormatStrFormatter('%1.1f') #设置x轴标签文本的格式 xminorLocator = M

  • Python使用matplotlib绘图无法显示中文问题的解决方法

    本文实例讲述了Python使用matplotlib绘图无法显示中文问题的解决方法.分享给大家供大家参考,具体如下: 在python中,默认情况下是无法显示中文的,如下代码: import matplotlib.pyplot as plt # 定义文本框和箭头格式 decisionNode = dict(boxstyle = "sawtooth", fc = "0.8") leafNode = dict(boxstyle = "round4", f

随机推荐