Python使用matplotlib和pandas实现的画图操作【经典示例】


Posted in Python onJune 13, 2018

本文实例讲述了Python使用matplotlib和pandas实现的画图操作。分享给大家供大家参考,具体如下:

画图在工作再所难免,尤其在做数据探索时候,下面总结了一些关于python画图的例子

#encoding:utf-8
'''''
Created on 2015年9月11日
@author: ZHOUMEIXU204
'''
# pylab 是 matplotlib 面向对象绘图库的一个接口。它的语法和 Matlab 十分相近
import pandas as pd
#from ggplot import *
import numpy as np
import matplotlib.pyplot as plt
df=pd.DataFrame(np.random.randn(1000,4),columns=list('ABCD'))
df=df.cumsum()
print(plt.figure())
print(df.plot())
print(plt.show())
# print(ggplot(df,aes(x='A',y='B'))+geom_point())

运行效果:

Python使用matplotlib和pandas实现的画图操作【经典示例】

# 画简单的图形
from pylab import *
x=np.linspace(-np.pi,np.pi,256,endpoint=True)
c,s=np.cos(x),np.sin(x)
plot(x,c, color="blue", linewidth=2.5, linestyle="-", label="cosine") #label用于标签显示问题
plot(x,s,color="red", linewidth=2.5, linestyle="-", label="sine")
show()

运行效果:

Python使用matplotlib和pandas实现的画图操作【经典示例】

#散点图
from pylab import *
n = 1024
X = np.random.normal(0,1,n)
Y = np.random.normal(0,1,n)
scatter(X,Y)
show()

运行效果:

Python使用matplotlib和pandas实现的画图操作【经典示例】

#条形图
from pylab import *
n = 12
X = np.arange(n)
Y1 = (1-X/float(n)) * np.random.uniform(0.5,1.0,n)
Y2 = (1-X/float(n)) * np.random.uniform(0.5,1.0,n)
bar(X, +Y1, facecolor='#9999ff', edgecolor='white')
bar(X, -Y2, facecolor='#ff9999', edgecolor='white')
for x,y in zip(X,Y1):
 text(x+0.4, y+0.05, '%.2f' % y, ha='center', va= 'bottom')
ylim(-1.25,+1.25)
show()

运行效果:

Python使用matplotlib和pandas实现的画图操作【经典示例】

#饼图
from pylab import *
n = 20
Z = np.random.uniform(0,1,n)
pie(Z), show()

运行效果:

Python使用matplotlib和pandas实现的画图操作【经典示例】

#画三维图
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
from pylab import *
fig=figure()
ax=Axes3D(fig)
x=np.arange(-4,4,0.1)
y=np.arange(-4,4,0.1)
x,y=np.meshgrid(x,y)
R=np.sqrt(x**2+y**2)
z=np.sin(R)
ax.plot_surface(x,y,z,rstride=1,cstride=1,cmap='hot')
show()

运行效果:

Python使用matplotlib和pandas实现的画图操作【经典示例】

#用于图像显示的问题
import matplotlib.pyplot as plt
import pandas as pd
weights_dataframe=pd.DataFrame()
plt.figure()
plt.plot(weights_dataframe.weights_ij,weights_dataframe.weights_x1,label='weights_x1')
plt.plot(weights_dataframe.weights_ij,weights_dataframe.weights_x0,label='weights_x0')
plt.plot(weights_dataframe.weights_ij,weights_dataframe.weights_x2,label='weights_x2')
plt.legend(loc='upper right') #用于标签显示问题
plt.xlabel(u"迭代次数", fontproperties='SimHei')
plt.ylabel(u"参数变化", fontproperties='SimHei')
plt.title(u"迭代次数显示", fontproperties='SimHei') #fontproperties='SimHei' 用于可以显示中文
plt.show()
import matplotlib.pyplot as plt
from numpy.random import random
colors = ['b', 'c', 'y', 'm', 'r']
lo = plt.scatter(random(10), random(10), marker='x', color=colors[0])
ll = plt.scatter(random(10), random(10), marker='o', color=colors[0])
l = plt.scatter(random(10), random(10), marker='o', color=colors[1])
a = plt.scatter(random(10), random(10), marker='o', color=colors[2])
h = plt.scatter(random(10), random(10), marker='o', color=colors[3])
hh = plt.scatter(random(10), random(10), marker='o', color=colors[4])
ho = plt.scatter(random(10), random(10), marker='x', color=colors[4])
plt.legend((lo, ll, l, a, h, hh, ho),
   ('Low Outlier', 'LoLo', 'Lo', 'Average', 'Hi', 'HiHi', 'High Outlier'),
   scatterpoints=1,
   loc='lower left',
   ncol=3,
   fontsize=8)
plt.show()
#pandas中画图
#画累和图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
ts=pd.Series(np.random.randn(1000),index=pd.date_range('1/1/2000',periods=1000))
ts=ts.cumsum()
ts.plot()
plt.show()
df=pd.DataFrame(np.random.randn(1000,4),index=ts.index,columns=list('ABCD'))
df=df.cumsum()
df.plot()
plt.show()
import pandas as pd
import  numpy  as  np
import matplotlib.pyplot as plt
#画柱状图
df2 = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
df2.plot(kind='bar') #分开并列线束
df2.plot(kind='bar', stacked=True) #四个在同一个里面显示 百分比的形式
df2.plot(kind='barh', stacked=True)#纵向显示
plt.show()
df4=pd.DataFrame({'a':np.random.randn(1000)+1,'b':np.random.randn(1000),'c':np.random.randn(1000)-1},columns=list('abc'))
df4.plot(kind='hist', alpha=0.5)
df4.plot(kind='hist', stacked=True, bins=20)
df4['a'].plot(kind='hist', orientation='horizontal',cumulative=True) #cumulative是按顺序排序,加上这个
plt.show()
#Area Plot
df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
df.plot(kind='area')
df.plot(kind='area',stacked=False)
plt.show()
#散点图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.rand(50, 4), columns=['a', 'b', 'c', 'd'])
df.plot(kind='scatter', x='a', y='b')
df.plot(kind='scatter', x='a', y='b',color='DarkBlue', label='Group 1')
#饼图
df = pd.DataFrame(3 * np.random.rand(4, 2), index=['a', 'b', 'c', 'd'], columns=['x', 'y'])
df.plot(kind='pie', subplots=True, figsize=(8, 4))
df.plot(kind='pie', subplots=True,autopct='%.2f',figsize=(8, 4)) #显示百分比
plt.show()
#画矩阵散点图
df = pd.DataFrame(np.random.randn(1000, 4), columns=['a', 'b', 'c', 'd'])
pd.scatter_matrix(df, alpha=0.2, figsize=(6, 6), diagonal='kde')
plt.show()

实际我个人喜欢用R语言画图,python画图也有ggplot类似的包

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现快速排序和插入排序算法及自定义排序的示例
Feb 16 Python
Python中异常重试的解决方案详解
May 05 Python
Python实现加载及解析properties配置文件的方法
Mar 29 Python
python中virtualenvwrapper安装与使用
May 20 Python
Python 二叉树的层序建立与三种遍历实现详解
Jul 29 Python
基于python的列表list和集合set操作
Nov 24 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
Mar 06 Python
Python手动或自动协程操作方法解析
Jun 22 Python
anaconda3安装及jupyter环境配置全教程
Aug 24 Python
如何在scrapy中捕获并处理各种异常
Sep 28 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
Jan 07 Python
解决Pytorch中关于model.eval的问题
May 22 Python
使用python爬虫获取黄金价格的核心代码
Jun 13 #Python
Python实现爬虫从网络上下载文档的实例代码
Jun 13 #Python
Pycharm导入Python包,模块的图文教程
Jun 13 #Python
mac下pycharm设置python版本的图文教程
Jun 13 #Python
使用Python来开发微信功能
Jun 13 #Python
python爬取足球直播吧五大联赛积分榜
Jun 13 #Python
Python实现多条件筛选目标数据功能【测试可用】
Jun 13 #Python
You might like
ftp类(myftp.php)
2006/10/09 PHP
一个SQL管理员的web接口
2006/10/09 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
js打印纸函数代码(递归)
2010/06/18 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
Underscore.js 的模板功能介绍与应用
2012/12/24 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
2015/06/16 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
babel之配置文件.babelrc入门详解
2018/02/22 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
2019/07/25 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[02:05]2014DOTA2国际邀请赛 BBC外卡赛赛后总结
2014/07/09 DOTA
python计算圆周长、面积、球体体积并画出圆
2014/04/08 Python
python中字符串前面加r的作用
2015/06/04 Python
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
对Python3 序列解包详解
2019/02/16 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
2021/01/09 Python
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
SQL面试题
2013/04/30 面试题
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
教师职位说明书
2014/07/29 职场文书
软件测试专业推荐信
2014/09/18 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python