数据可视化利器pyechart和matplotlib比较

python中用作数据可视化的工具有多种,其中matplotlib最为基础。故在工具选择上,图形美观之外,操作方便即上乘。

本文着重说明常见图表用基础版matplotlib和改良版pyecharts作图间的差异

一、maplotlib

基本用法如下:

import numpy as np
import pandas as pd
from pandas import Series, DataFrame
import matplotlib.pyplot as plt
import matplotlib.finance as mpf
%matplotlib inline

fig = plt.figure(figsize=(10,8))  #建立一个大小为10*8的画板
ax1 = fig.add_subplot(321)  #在画板上添加3*3个画布,位置是第1个
ax2 = fig.add_subplot(3,2,2)
ax3 = fig.add_subplot(3,2,3)
ax4 = fig.add_subplot(3,2,4)
ax5 = fig.add_subplot(3,2,5)
ax6 = fig.add_subplot(3,2,6)

data1 = np.random.randn(20)
x = np.arange(20)

ax1.plot(data1)  #作折线图
ax2.scatter(data1,data1,color=‘r‘)  #作散点图
ax3.hist(data1,bins=10,alpha=0.3)  #作直方图
ax4.bar(x,data1)  #作柱形图
ax5.pie(np.random.randint(1,15,5),explode=[0,0,0.2,0,0])  #作饼形图
ax6.plot(x,data1,color=‘green‘)  #组合图
ax6.bar(x,data1,color=‘k‘)

fig,axes = plt.subplots(3,3,figsize=(20,16))data2 = DataFrame(np.random.randn(10,5),columns = [‘A‘,‘B‘,‘C‘,‘D‘,‘E‘],index = np.arange(0,100,10))

data2.plot(kind=‘line‘,ax=axes[0][0])  #作折线图data2.plot(kind = ‘scatter‘,x = data2.index[0] ,y = data2.index[0],ax=axes[0][1])  #作散点图data2.plot(kind=‘hist‘,ax=axes[0][2],legend=False)  #作直方图data2.plot(kind=‘bar‘,ax=axes[1][0])  #作柱形图data2.plot(kind=‘area‘,ax=axes[1][1],stacked = False) #面积图

train_data = np.array(data2)  mpf.candlestick_ohlc(axes[1][2],train_data.tolist(),width=1.5,colorup=‘r‘,colordown=‘g‘)  #K线图

axim = axes[2][0].imshow(data2.values,interpolation=‘nearest‘)  #热力图plt.colorbar(axim)

plt.legend(loc = ‘best‘)plt.show()

可能遇到的问题:

1.axes[ ][ ]前面的代表行,后面代表列

2.散点图表示因变量随自变量而变化的大致趋势,x,y大小写有区分

3.面积图若不添加stacked = False会报错,提示每列必须得全正或全负

4.K线图至少得5列数据

更多操作:

plt.xlabel(‘横坐标名称‘)
plt.title(‘标题‘)
plt.xlim([0,20])  #添加x轴范围
ax.set_xyick([0,250,500,750,1000])  #设置x轴标签
ax.text(x,y,‘text‘,family = ‘‘,fontsize = ‘‘)  #添加文本
plt.setp(ax.get_xticklables(),viseble = False)  #隐藏x轴标签,多图使用
plt.subplot_adjust(left = None,right = None,top = None,wspace = None,hspace = None)  #调整子图间距
plt.axhline(y = 0,linewidth = 1,color = ‘green‘)   #添加分割线
plt.grid(True)   #添加网格
plt.savefig(‘filepath‘)  #保存图片

二、pyecharts

基本用法如下:

import pandas as pd
import numpy as np
from pyecharts import Page

#pandas类型的数据处理
index = pd.date_range(‘2/1/2017‘,periods = 6,freq = ‘M‘)
df1 = pd.DataFrame(np.random.randn(6),index = index)
df2 = pd.DataFrame(np.random.randn(6),index = index)
df1_value = [i[0] for i in df1.values]
df2_value = [i[0] for i in df2.values]
#print type(df1_value) 列表

#pandas类型转list类型
data = ts.get_hist_data(‘300348‘,start=‘2017-01-01‘)
new_data = data.ix[:,[‘open‘,‘close‘,‘high‘,‘low‘]]
train_data = np.array(new_data)
train_index = np.array(data.index)

#元组列表
d = [(11,19),(12,21),(13,32),(10,20),(10,20),(10,33)]
dat = dict(d)
d1 = dat.keys()
d2 = dat.values()
#print type(d1)  列表

#列表数据
attr = [‘衬衫‘,‘羊毛衫‘,‘雪纺衫‘,‘裤子‘,‘高跟鞋‘,‘袜子‘]
v1 = [11,12,13,10,10,10]
v2 = [19,21,32,20,20,33]

from pyecharts import Bar

page = Page()   #实例化,同一网页按顺序展示多图
bar = Bar(‘bar示例图‘,‘ryana‘)
bar.add(‘test‘,index,df1_value,mark_point = [‘average‘])
bar.add(‘test‘,attr,v1,mark_line = [‘max‘])
page.add(bar)

from pyecharts import Line

line = Line(‘折线图示例‘)
#line.add(‘test‘,attr,v1,mark_point = ‘average‘)
line.add(‘test‘,attr,v2,is_fill = True,area_opacity = 0.3) #面积图
page.add(line)

from pyecharts import Pie

pie = Pie(‘饼图示例‘)
#pie.add(‘test‘,attr,v1,is_label_show = True)
pie.add(‘test‘,attr,v2,radius = [40,75],is_label_show = True) #饼环图
page.add(pie)

"""
#组合图line+pie
from pyecharts import Grid

grid = Grid()
grid.add(line, grid_right="10%")
grid.add(pie, grid_left="10%")
grid.render()
"""

from pyecharts import Scatter

scatter = Scatter(‘散点图示例‘)
scatter.add(‘test‘,v1,v2)
page.add(scatter)

from pyecharts import HeatMap
import random

x_axis = [‘1a‘,‘2a‘,‘3a‘,‘4a‘,‘5a‘,‘6a‘,‘7a‘,‘8a‘,‘9a‘]
y_axis = [‘Sat‘,‘Fri‘,‘Thu‘,‘Wed‘,‘Tue‘,‘Mon‘,‘Sun‘]

dataH = [[i,j,random.randint(0,50)] for i in range(9) for j in range(7)]
heatmap = HeatMap(‘热力图示例‘)
heatmap.add(‘test‘,x_axis,y_axis,dataH,is_visualmap = True,visual_text_color = "#000",visual_orient=‘horizontal‘)
page.add(heatmap)

from pyecharts import Kline

dataK = [[2320.26,2320.33,2287.4,3513.4],[2340.26,2310.33,2187.4,2513.4],[2329.26,2420.33,2257.4,2573.4],
[2321.26,2370.33,2187.4,3013.4],[2380.26,2220.33,2487.4,3113.4],[2350.26,2520.33,2087.4,2813.4],
[2300.26,2390.33,2187.4,2413.4]]

kline = Kline(‘K线图示例‘)
kline.add(‘test‘,[‘2017/8/{}‘.format(i+1) for i in range(7)],dataK)
page.add(kline)

from pyecharts import WordCloud

dataW = {‘Python‘:55,‘HBASE‘:49,‘JAVA‘:72,‘MongoDB‘:88,‘SAS‘:39,‘Spark‘:63}

wordcloud = WordCloud(‘词云图例‘,width = 1200,height = 720)
wordcloud.add(‘test‘,dataW.keys(),dataW.values(),word_size_range = [20,80])
page.add(wordcloud)

page.render(r‘E:\echart.html‘)

参考:

pyechart : https://github.com/chenjiandongx/pyecharts/blob/master/docs/zh-cn/documentation.md

maplotlib : http://blog.csdn.net/xiaodongxiexie/article/details/53123371

时间: 2024-11-10 00:13:29

数据可视化利器pyechart和matplotlib比较的相关文章

d3.js:数据可视化利器之快速入门

hello,data! 在进入d3.js之前,我们先用一个小例子回顾一下将数据可视化的基本流程. 任务 用横向柱状图来直观显示以下数据: var data = [10,15,23,78,57,29,34,71]; 简单地思考一下,要完成这个任务有两个问题需要解决: 用什么可视元素来表现横向柱? 数据对应到可视元素的什么属性? 这个不算困难,我们使用HTML的DIV元素来实现,代码参见http://www.hubwiz.com/course/54fd40cfe564e50d50dcf284/:快速

大数据可视化分析工具推荐

各个互联网公司通过大量的用户数据.信息进行统计分析,而这些大量繁杂的数据在经过可视化工具处理后,就能以图形化的形式展现在用户面前,清晰直观.随着各种数据的增加,这种可视化工具越来越得到开发者们的欢迎. 下面推荐25款可视化工具供大家选择和使用. 1.Modest Maps Modest Maps是一个轻量级.可扩展的.可定制的和免费的地图显示类库,这个类库能帮助开发人员在他们自己的项目里能够与地图进行交互.ModestMaps提供一个核心健壮的带有很多hooks与附加functionality函

Python进阶(三十九)-数据可视化の使用matplotlib进行绘图分析数据

Python进阶(三十九)-数据可视化の使用matplotlib进行绘图分析数据 ??matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. ??它的文档相当完备,并且 Gallery页面 中有上百幅缩略图,打开之后都有源程序.因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定. ??在Linux下比较著名的数据图工具还有gnuplot

Python进阶(四十)-数据可视化の使用matplotlib进行绘图

Python进阶(四十)-数据可视化の使用matplotlib进行绘图 前言 ??matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包.我将在这篇文章中介绍matplotlib API的核心对象,并介绍如何使用这些对象来实现绘图.实际上,matplotlib的对象体系严谨而有趣,为使用者提供了巨大的发挥空间.用户在熟悉了核心对象之后,可以轻易的定制图像.matplotlib的对象体系也是计算机图形学的一个优秀范例.即使你不是Python程序员,你也可以从文中

【Data Visual】一文搞懂matplotlib数据可视化

一文搞懂matplotlib数据可视化 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为要实现其功能用途而令人感到枯燥乏味,或者是为了看上去绚丽多彩而显得极端复杂.为了有效地传达思想概念,美学形式与功能需要齐头并进,通过直观地传达关键的方面与特征,从而实现对于相当稀疏而又复杂的数据集的深入洞察.然而,设计人员往往并不能很好地把握设计与功能之间的平衡,从而创造出华而不实的数据可视化形式,

Python - matplotlib 数据可视化

在许多实际问题中,经常要对给出的数据进行可视化,便于观察. 今天专门针对Python中的数据可视化模块--matplotlib这块内容系统的整理,方便查找使用. 本文来自于对<利用python进行数据分析>以及网上一些博客的总结. 1  matplotlib简介 matplotlib是Pythom可视化程序库的泰斗,经过几十年它仍然是Python使用者最常用的画图库.有许多别的程序库都是建立在它的基础上或直接调用它,比如pandas和seaborn就是matplotlib的外包, 它们让你使用

python数据分析实战-第7章-用matplotlib实现数据可视化

第7章 用matplotlib实现数据可视化 149 7.1 matplotlib库 149 7.2 安装 150 7.3 IPython和IPython QtConsole 150 7.4 matplotlib架构 151 7.4.1 Backend层 152 7.4.2 Artist层 152 7.4.3 Scripting层(pyplot) 153 7.4.4 pylab和pyplot 153 7.5 pyplot 154 7.5.1 生成一幅简单的交互式图表 154 123 import

数据可视化库-Matplotlib基本操作

python-3.7     pycharm matplotlib 2.2.3 """ 数据可视化库-Matplotlib 时间:2018\9\12 0012 """ import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt print("""\n-------------------

Python数据可视化库-Matplotlib(一)

今天我们来学习一下python的数据可视化库,Matplotlib,是一个Python的2D绘图库 通过这个库,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率图,条形图,错误图,散点图等等 废话不多说,我们直接通过例子来进行讲解. 首先我们有一组数据如下: 我们可以看到,这组数据有日期,还有日期对应的值,因为这组数据中的日期格式不是标准的日期格式 那么我们对数据做一下转换,取1948年的整年的数据,来进行一个绘图操作 import pandas as pd unrate = pd.rea