我爱编程

Python数据分析与展示Numpy、Matplotlib

2017-08-01  本文已影响0人  凌勇

Python 数据分析与展示

学习内容

Numpy数据表示、Matplotlib绘图、Pandas数据分析这三个库

Anaconda IDE的使用

conda、Spyder、IPython的使用

实例:图像的手绘风格、引力波的绘制、房价趋势分析、股市数据的分析


Anaconda IDE的使用

使用anaconda navigator 启动

anaconda来源于conda(用于管理python的第三方包与python环境)其包含了conda、Python与一批第三方的库

编程工具 Spyder 包含了IPython(交互式命令行)
IPython中的?可以得到变量信息与函数信息、%run命令可以运行python程序,在运行时会使用空的命令空间、%magic可以显示所有的魔术命令


plt运行结果.png

同样也可以这样绘制:


plt.plot([0,2,4,6,8],[3,1,4,5,2])


# 给出横纵坐标的范围 横-1到10,纵0到6
plt.axis([-1,10,0,6])

# 绘图区域分割
plt.subPlot(nrows,ncols,plot_number) # 与matlab一样,标号从左到右,从上到下

# 也可以将逗号去掉,比如plt.subplot(324)



plt.plot(x,y,format_string,**kwargs)

plt中的文本显示函数

plt.subplot2grid(GridSpec,CurSpec,colspan=1,rowspan=1)

设定网格,选中网格,设计成不同大小的绘图子区域

import matplotlib.gridspec as grs

gs  = grs.GridSpec(3,3)
ax1 = plt.subplot(gs[0:])
ax2 = plt.subplot(gs[1,:-1])

pyplot基础图标函数

plot()函数、箱形图函数boxplot()、条形图函数bar()、横向条形图函数barh()、极坐标图函数polar()、饼图pie()
功率谱密度图函数psd()、谱图specgram()、X-Y相关性图cohere()、散点图scatter()、直方图hist()、步阶图step()、等值图contour()、垂直图vlines()、柴火图stem()、数据日期plot_date()

下面以代码说明:

# -*- coding: utf-8 -*-
"""
Created on Tue Aug  1 14:07:25 2017

@author: Administrator
"""

import matplotlib.pyplot as plt


# 饼图的标签
labels = 'Frogs','Hogs','Dogs','Logs'

# 饼图对应的尺寸,即所占比例
sizes = [15,30,45,10]

# 突出与突出的量
explode = (0,0.1,0,0)

# autopct显示百分数的方式、shadow阴影效果、startangele起始角度

plt.pie(sizes,explode=explode,labels=labels,autopct = '%1.1f%%',shadow = False,startangle = 90)


# 使得轴的度量成为一样
plt.axis('equal')
plt.show()
pie.png
# -*- coding: utf-8 -*-
"""
Created on Tue Aug  1 15:39:08 2017

@author: Administrator
"""
# 绘制直方图

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)
mu,sigma = 100,20 #均值与标准差

a = np.random.normal(mu,sigma,size=100) # 正态分布


# a 给定数组 bin 表示直方的个数,就是取值区间的划分,纵轴表示为频次/区间长度
# normed = 0 显示频次,normed=1 显示频次/区间长度
# histtype 绘制类型 facecolor 绘制颜色

plt.hist(a,20,normed = 1,histtype = 'stepfilled',facecolor = 'b',alpha = 0.75)

plt.title('Histgram')

plt.savefig('D:/Histgram',dpi = 150)

plt.show()

Histgram.png
# -*- coding: utf-8 -*-
"""
Created on Tue Aug  1 15:48:07 2017

@author: Administrator
"""

# 极坐标图的绘制
import matplotlib.pyplot as plt
import numpy as np

# 极坐标图中的数据个数
N = 20

# 等分出20个不同的角度 0-360度
theta = np.linspace(0.0,2*np.pi,N,endpoint = False)

# 生成每个角度对应的值
radii = 10*np.random.rand(N)

# 生成宽度值
width = np.pi/4*np.random.rand(N)


# 获得绘制极坐标图的子区域
ax = plt.subplot(111,projection = 'polar')

# 前三个参数对应 theta 从何地开始绘制 radii 从中心点绘制出来的长度,width 指绘图区域的面积
bars = ax.bar(theta,radii,width=width,bottom=0.0)

for r,bar in zip(radii,bars):
    bar.set_facecolor(plt.cm.viridis(r/10.))
    bar.set_alpha(0.5)


plt.savefig('D:/polar',dpi = 150)

plt.show()
polar.png
# -*- coding: utf-8 -*-
"""
Created on Tue Aug  1 16:02:32 2017

@author: Administrator
"""

import numpy as np 
import matplotlib.pyplot as plt

fig,ax = plt.subplots()

ax.plot(10*np.random.randn(100),10*np.random.randn(100),'o')
ax.set_title('Simple Scatter')

plt.savefig('D:/Scatter',dpi = 150)

plt.show()
Scatter.png
上一篇下一篇

猜你喜欢

热点阅读