数据可视化-Python之Matplotlib
2014-03-12 20:31
1166 查看
数据可视化可以说是数据挖掘与结果展示很有力的工具。
程序绘图可以得到比较个性化的图像,而且易于大量生产大量的图像。但是对于绘图来书,最为重要的是之前额数据预处理。个人比较喜欢的绘图工具平台有R语言的ggplot2以及Python的matplotlib,R语言比python还要简洁,产生图像也鞥各位方便,绘图库很多,很多地图可视化也是轻而易举的实现。然而R语言针对大数据的处理效率不足,python可以很好的弥补这一点,一般大量数据我都是在python下处理然后用csv格式数据导入到R平台,然后绘图。
今天尝试了一下matplotlib,这个绘图库很想Maltab的绘图库,学习的话就是这个教程:http://reverland.org/python/2012/09/07/matplotlib-tutorial/
然后就是阅读了几篇网上的博客:
昨天帮一个同学做一个简单的分组柱状图:
plotData是一个12*9的numpy数组,产生柱状图的思想是花多次bar,然后每次bar的位置向后位移一个一定的长度,
上面的图分辨率设置高一点能够放大浏览,但是在数据可视化里面这样的情况是不好的,最好进一步分组可视化,把很高的柱子在另一个图像中展示:
matplotlib里面有一个很有趣的东西就是这个xkcd的东东,它可以让你的绘制的图像像是涂鸦风格,像这样的或者这样的:
这个特性只有在版本1.3之后才被支持,由于之前一直使用spyder作为开发环境,所以matplotlib的版本比较低这个特性并不被支持,马上下载了新的版本的matplotlib然后安装,在把这个目录copy到我的spyder所使用的包目录下,然后把以前的matplotlib删除,ok
xkcd使用很方便,只要把原先的绘图程序放进with xkcd():语句里就好了
程序绘图可以得到比较个性化的图像,而且易于大量生产大量的图像。但是对于绘图来书,最为重要的是之前额数据预处理。个人比较喜欢的绘图工具平台有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 plt import matplotlib.path as mpath import matplotlib.patches as mpatches with 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,绘图入门篇,Pyplot介绍
- python的数据可视化库 matplotlib 和 pyecharts
- Python数据可视化编程通过Matplotlib创建散点图代码示例
- python数据挖掘课程 十一.Pandas、Matplotlib结合SQL语句可视化分析
- python的数据可视化库 matplotlib 和 pyecharts
- python数据可视化matplotlib的使用
- python—matplotlib数据可视化实例注解系列-----之函数填充
- python 数据可视化 matplotlib学习二 : 对折线图使用颜色映射
- Python数据可视化-matplotlib学习1
- 读书笔记--python数据可视化--001_matplotlib学习
- python—matplotlib数据可视化实例注解系列-----之函数图
- Python进阶(四十)-数据可视化の使用matplotlib进行绘图
- python爬虫webdriver.Chrome 数据可视化简单案例matplotlib
- [置顶] Python数据可视化—matplotlib笔记
- python——数据可视化:matplotlib,seaborn,pandas
- 用Python获取股价数据,通过Matplotlib可视化
- 基于Python的数据可视化 matplotlib seaborn pandas
- Python数据可视化matplotlib(二)—— 子图功能
- Python数据挖掘04---matplotlib数据可视化分析
- python—matplotlib数据可视化实例注解系列-----设置标注字体样式(matplotlib颜色库)