精选3种张炫酷的动态交互式图表,Pandas一键生成,通俗易懂

大家好!

今天来讲一下如何用一行代码在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的格式下载下来,

精选3种张炫酷的动态交互式图表,Pandas一键生成,通俗易懂_第1张图片

同时我们也还可以对绘制的图表放大查看,

我们再来看一下下面这组数据

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

精选3种张炫酷的动态交互式图表,Pandas一键生成,通俗易懂_第2张图片

我们也可以来绘制“堆叠式”的直方图

df.head(10).iplot(kind='bar',barmode='stack')

output

精选3种张炫酷的动态交互式图表,Pandas一键生成,通俗易懂_第3张图片

那么同样地,我们也可以将直方图横过来来绘制

df.head(10).iplot(kind='barh',barmode='stack')

output

精选3种张炫酷的动态交互式图表,Pandas一键生成,通俗易懂_第4张图片

折线图

下面我们来看一下折线图的绘制,我们首先针对上面的df数据集各列做一个累加

df3 = df.cumsum()

然后我们来绘制折线图

df3.iplot()

output

当然你也可以筛选出当中的几列然后来进行绘制,效果如下

df3[["A", "B"]].iplot()

output

我们也可以给折线图画一条拟合其走势的直线,

df3['A'].iplot(bestfit = True,bestfit_colors=['pink'])

output

精选3种张炫酷的动态交互式图表,Pandas一键生成,通俗易懂_第5张图片

这里我们着重来介绍一个iplot()方法里面常用的参数

  • kind:图表类型,默认的是scatter,散点类型,可供选择的类型还有bar(直方图)、box(箱型图)、heatmap(热力图)等等
  • theme: 布局主题,可以通过cf.getThemes()来查看主要有哪些
  • title: 图表的标题
  • xTitle/yTitle: x或者y轴上面的轴名
  • colors: 绘制图表时候的颜色
  • subplots: 布尔值,绘制子图时候需要用到,默认为False
  • mode字符串,绘图的模式,可以有linesmarkers,也还有lines+markerslines+text等模式
  • size: 针对于散点图而言,主要用来调整散点的大小
  • shape: 在绘制子图时候各个图的布局
  • bargap: 直方图当中柱子之间的距离
  • barmode : 直方图的形态,stack(堆叠式)、group(簇状)、overlay(覆盖)

面积图

从折线图到面积图的转变非常的简单,只需要将参数fill设置为True即可,代码如下

df3.iplot(fill = True)

output

你可能感兴趣的