侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

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

Python  /  管理员 发布于 7年前   198

本文实例讲述了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 npimport matplotlib.pyplot as pltdf=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())

运行效果:

# 画简单的图形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()

运行效果:

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

运行效果:

#条形图from pylab import *n = 12X = 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()

运行效果:

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

运行效果:

#画三维图import numpy as npfrom mpl_toolkits.mplot3d import Axes3Dfrom 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()

运行效果:

#用于图像显示的问题import matplotlib.pyplot as pltimport pandas as pdweights_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 pltfrom numpy.random import randomcolors = ['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 pdimport numpy as npimport matplotlib.pyplot as pltts=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 pdimport  numpy  as  npimport 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 Plotdf = 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 pdimport numpy as npimport matplotlib.pyplot as pltdf = 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爬虫获取黄金价格的核心代码
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(95个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客