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 14 Python
老生常谈Python进阶之装饰器
May 11 Python
Python中使用支持向量机SVM实践
Dec 27 Python
Python使用pickle模块存储数据报错解决示例代码
Jan 26 Python
pandas数据框,统计某列数据对应的个数方法
Apr 11 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
python使用sessions模拟登录淘宝的方式
Aug 16 Python
django实现web接口 python3模拟Post请求方式
Nov 19 Python
Python文件操作函数用法实例详解
Dec 24 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
Jul 21 Python
Python操控mysql批量插入数据的实现方法
Oct 27 Python
python学习之panda数据分析核心支持库
May 07 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
德生PL550的电路分析
2021/03/02 无线电
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
react 应用多入口配置及实践总结
2018/10/17 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
用Python生成器实现微线程编程的教程
2015/04/13 Python
python实现的系统实用log类实例
2015/06/30 Python
python生成不重复随机数和对list乱序的解决方法
2018/04/09 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
【python】matplotlib动态显示详解
2019/04/11 Python
python 导入数据及作图的实现
2019/12/03 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
法国足球商店:Footcenter
2019/07/06 全球购物
Lentiamo比利时:便宜的隐形眼镜
2020/02/14 全球购物
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
质检员岗位职责
2013/12/17 职场文书
怎样写好自荐信和推荐信
2013/12/26 职场文书
学习心得体会
2014/01/01 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
党员剖析材料范文
2014/12/18 职场文书
开平碉楼导游词
2015/02/06 职场文书
2015年化验员工作总结
2015/04/10 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android