数据可视化-Python之Matplotlib
来源:互联网 发布:淘宝天猫积分怎么获得 编辑:程序博客网 时间:2024/05/16 05:19
数据可视化可以说是数据挖掘与结果展示很有力的工具。
程序绘图可以得到比较个性化的图像,而且易于大量生产大量的图像。但是对于绘图来书,最为重要的是之前额数据预处理。个人比较喜欢的绘图工具平台有R语言的ggplot2以及Python的matplotlib,R语言比python还要简洁,产生图像也鞥各位方便,绘图库很多,很多地图可视化也是轻而易举的实现。然而R语言针对大数据的处理效率不足,python可以很好的弥补这一点,一般大量数据我都是在python下处理然后用csv格式数据导入到R平台,然后绘图。
今天尝试了一下matplotlib,这个绘图库很想Maltab的绘图库,学习的话就是这个教程:http://reverland.org/python/2012/09/07/matplotlib-tutorial/
然后就是阅读了几篇网上的博客:
昨天帮一个同学做一个简单的分组柱状图:
#-------------------------------------------------------------def covinience_bar_plot(plotData,title): n_groups = 12 fig, ax = plt.subplots() index = np.arange(n_groups) bar_width = 0.1 opacity = 0.7 error_config = {'ecolor': '0.3'} filterByProvince=[u'AnHui',u'HeNan',u'HuNan',u'JiangXi',u'ShanDong',u'ShanXi',u'HuBei',u'ChongQing'] color=['#145214','#666633','#CC3300','#CCFF66','#FF6600', '#CC66FF','#3366FF','#0099CC'] i=0 plt.xlim(-0.5, index.max()*1.1) for xx,yy,province in zip(range(1,9),color,filterByProvince): rects1 = plt.bar(index+bar_width*i, plotData[:,xx], bar_width, alpha=opacity, color=yy, error_kw=error_config) rects1.set_label(province) for x,y in zip(index+bar_width*i, plotData[:,xx]): plt.text(x+0.06, y+3, '%.0f' % y,fontsize=3, ha='center', va= 'bottom') i+=1 plt.xlabel('Month') plt.ylabel('Num') #plt.xticks( range(1,13) ) plt.title(title) plt.xlim(-0.5, index.max()*1.1) mark=range(1,13) plt.xticks(index + 4*bar_width, mark) plt.legend() plt.tight_layout() plt.savefig(title+".png",dpi=700) plt.show()
plotData是一个12*9的numpy数组,产生柱状图的思想是花多次bar,然后每次bar的位置向后位移一个一定的长度,
上面的图分辨率设置高一点能够放大浏览,但是在数据可视化里面这样的情况是不好的,最好进一步分组可视化,把很高的柱子在另一个图像中展示:
matplotlib里面有一个很有趣的东西就是这个xkcd的东东,它可以让你的绘制的图像像是涂鸦风格,像这样的或者这样的:
这个特性只有在版本1.3之后才被支持,由于之前一直使用spyder作为开发环境,所以matplotlib的版本比较低这个特性并不被支持,马上下载了新的版本的matplotlib然后安装,在把这个目录copy到我的spyder所使用的包目录下,然后把以前的matplotlib删除,ok
# -*- coding: utf-8 -*-import matplotlib.pyplot as pltimport matplotlib.path as mpathimport matplotlib.patches as mpatcheswith plt.xkcd(): fig, ax = plt.subplots() Path = mpath.Path path_data = [ (Path.MOVETO, (1.58, -2.57)), (Path.CURVE4, (0.35, -1.1)), (Path.CURVE4, (-1.75, 2.0)), (Path.CURVE4, (0.375, 2.0)), (Path.LINETO, (0.85, 1.15)), (Path.CURVE4, (2.2, 3.2)), (Path.CURVE4, (3, 0.05)), (Path.CURVE4, (2.0, -0.5)), (Path.CLOSEPOLY, (1.58, -2.57)), ] codes, verts = zip(*path_data) path = mpath.Path(verts, codes) patch = mpatches.PathPatch(path, facecolor='r', alpha=0.5) ax.add_patch(patch) # plot control points and connecting lines x, y = zip(*path.vertices) line, = ax.plot(x, y, 'go-') ax.grid() ax.axis('equal')plt.show()
xkcd使用很方便,只要把原先的绘图程序放进with xkcd():语句里就好了
- 数据可视化-Python之Matplotlib
- python数据可视化之matplotlib
- python数据分析之数据可视化matplotlib
- Python数据可视化之Matplotlib学习笔记
- Python之数据可视化神奇-Matplotlib
- Python数据可视化之Matplotlib基础
- 【数据可视化】 之 Matplotlib
- matplotlib数据可视化入门-python
- Python数据可视化(matplotlib库)
- python—matplotlib数据可视化实例注解系列-----之横条图
- python—matplotlib数据可视化实例注解系列-----之箱状图
- python—matplotlib数据可视化实例注解系列-----之柱状图
- 读书笔记-python,数据可视化之matplotlib简单实用
- Python科学计算数据可视化模块-Matplotlib
- Python数据可视化—matplotlib笔记
- Python数据可视化—matplotlib笔记
- 【干货】Python使用matplotlib实现数据可视化
- python数据可视化-matplotlib库初体验
- 《java多线程设计模式 第五章Producer Consumer》
- combinations
- C has memset(), the Berkeley UNIX C library has bzero()
- 有效获取scrollWidth clientWidth方法:
- django POST获取字典
- 数据可视化-Python之Matplotlib
- hdu 1874 (spfa)
- window编程控件的基本使用
- 【连载一】漫谈投资机构对企业的估值(一)
- (code jam)Problem A. Store Credit
- 冒泡排序(随机生成10个数排序)
- 【连载八】移动医疗四大入口之大众入口(一)
- 服务端架构中的“网关服务器”
- 比微软kinect更强的视频跟踪算法--TLD跟踪算法介绍