大家好!
今天来讲一下如何用一行代码在DataFrame
数据集当中生成炫酷的动态交互式的图表,我们先来介绍一下这次需要用到的模块cufflinks
模块的安装
涉及到安装,直接pip install
即可
pip install cufflinks
导入模块,并查看相关的配置
我们导入该模块,看一下目前的版本是在多少
cf.__version__
output
'0.17.3'
目前该模块的版本已经到了0.17.3
,也是最新的版本,然后我们最新版本支持可以绘制的图表有哪些
cf.help()
output
Use 'cufflinks.help(figure)' to see the list of available parameters for the given figure.
Use 'DataFrame.iplot(kind=figure)' to plot the respective figure
Figures:
bar
box
bubble
bubble3d
candle
choroplet
distplot
.......
从上面的输出我们可以看到,绘制图表大致的语法是df.iplot(kind=图表名称)
而如何我们想要查看某个特定图表绘制时候的参数,例如柱状图bar
参数有哪些,可以这么做
cf.help('bar')
柱状图
我们先来看一下直方图图表的绘制,首先来创建一个数据集用于图表的绘制
df2 = pd.DataFrame({'Category':['A','B','C','D'],
'Values':[95,56,70,85]})
df2
output
Category Values
0 A 95
1 B 56
2 C 70
3 D 85
然后我们来绘制直方图
df2.iplot(kind='bar',x='Category',y='Values',
xTitle = "Category",yTitle = "Values",
title = "直方图")
output
其中的x
参数上面填的是x
轴上面对应的变量名,而y
参数填的是y
轴上面对应的变量名,我们可以将绘制的图表以png
的格式下载下来,
同时我们也还可以对绘制的图表放大查看,
我们再来看一下下面这组数据
df = pd.DataFrame(np.random.randn(100,4),columns='A B C D'.split())
df.head()
output
A B C D
0 0.612403 -0.029236 -0.595502 0.027722
1 1.167609 1.528045 -0.498168 -0.221060
2 -1.338883 -0.732692 0.935410 0.338740
3 1.662209 0.269750 -1.026117 -0.858472
4 1.387077 -0.839192 -0.562382 -0.989672
我们来绘制直方图的图表
df.head(10).iplot('bar')
output
我们也可以来绘制“堆叠式”的直方图
df.head(10).iplot(kind='bar',barmode='stack')
output
那么同样地,我们也可以将直方图横过来来绘制
df.head(10).iplot(kind='barh',barmode='stack')
output
折线图
下面我们来看一下折线图的绘制,我们首先针对上面的df
数据集各列做一个累加
df3 = df.cumsum()
然后我们来绘制折线图
df3.iplot()
output
当然你也可以筛选出当中的几列然后来进行绘制,效果如下
df3[["A", "B"]].iplot()
output
我们也可以给折线图画一条拟合其走势的直线,
df3['A'].iplot(bestfit = True,bestfit_colors=['pink'])
output
这里我们着重来介绍一个iplot()
方法里面常用的参数
kind
:图表类型,默认的是scatter
,散点类型,可供选择的类型还有bar(直方图)、box(箱型图)、heatmap(热力图)等等theme
: 布局主题,可以通过cf.getThemes()
来查看主要有哪些title
: 图表的标题xTitle/yTitle
: x或者y轴上面的轴名colors
: 绘制图表时候的颜色subplots
: 布尔值,绘制子图时候需要用到,默认为False
mode
:字符串
,绘图的模式,可以有lines
、markers
,也还有lines+markers
和lines+text
等模式size
: 针对于散点图而言,主要用来调整散点的大小shape
: 在绘制子图时候各个图的布局bargap
: 直方图当中柱子之间的距离barmode
: 直方图的形态,stack(堆叠式)、group(簇状)、overlay(覆盖)
面积图
从折线图到面积图的转变非常的简单,只需要将参数fill
设置为True
即可,代码如下
df3.iplot(fill = True)
output
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。