【Python】让 plotly 可视化更上一层:cufflinks 包

news2024/11/19 19:17:18

文章目录

  • 一、导读
  • 二、安装
  • 三、使用方法
  • 四、数据说明
  • 五、折线图
  • 六、散点图
  • 七、气泡图
  • 八、柱状图
  • 九、箱型图box
  • 十、直方图
  • 十一、小提琴图
  • 十二、热力图heatmap
  • 十三、3d图
  • 十四、散点矩阵图
  • 十五、子图

一、导读

今天给大家推荐一个高级的可视化神器:cufflinks

学习过可视化库matplotlib和seaborn的朋友都知道:seaborn是matplotlib的高级封装。在这里我也告诉大家:cufflinks就是plotly的高级封装。

plotly的绘图已经够简洁和优雅,没有想到cufflinks更甚之。在这里用一句话形容cufflinks:

cufflinks之于plotly,犹如seaborn之于matplotlib

那到底什么是cufflinks呢?

cufflinks是一个基于Python的数据可视化库,它建立在Plotly库之上,为用户提供了一种简单而强大的方式来创建交互式的、美观的图表和可视化。它的设计旨在使绘图过程变得简单且具有灵活性,无需编写复杂的代码。

使用cufflinks可以轻松地将Pandas DataFrame和Series对象转换为交互式图表。它提供了与Pandas紧密集成的API,使数据可视化的过程变得直观且易于操作。通过几行简单的代码,就可以创建各种类型的图表,包括线图、柱状图、散点图、面积图、箱线图、热图等。

cufflinks还具有许多便捷的功能和选项,可让用户自定义图表的外观和样式。此外可以设置标题、轴标签、颜色、图例等,并通过拖动和缩放等交互式功能与图表进行互动。

此外,cufflinks还提供了简便的导出功能,可以将生成的图表保存为静态图像或动态HTML文件,以便与他人共享或嵌入到网页中。

二、安装

安装非常简单:

pip install cufflinks

建议用清华源加速:

pip install cufflinks -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述

三、使用方法

import pandas as pd
import numpy as np

import cufflinks as cf
# 设置配置文件
#  theme的7个选择项: 'ggplot', 'pearl', 'solar', 'space', 'white', 'polar', 'henanigans'
cf.set_config_file(world_readable=True, theme="pearl", offline=True) 

%reload_ext autoreload
%autoreload 2

查看cufflinks的帮助文档,目前cufflinks绘制的图形:

cf.help()

在这里插入图片描述
查看某个图形的参数:

cf.help("violin")

在这里插入图片描述
使用说明:

DataFrame.Figure.iplot()
  • DataFrame:pandas中的数据框
  • Figure:指定图形,比如box、bar等
  • iplot():参数设置

参数说明:

df.iplot(
    kind='scatter',data=None,layout=None,filename='',sharing=None,
    title='',xTitle='',yTitle='',zTitle='',theme=None,
    colors=None,colorscale=None,fill=False,width=None,dash='solid',
    mode='',interpolation='linear',symbol='circle',size=12,barmode='',
    sortbars=False,bargap=None,bargroupgap=None,bins=None,histnorm='',
    histfunc='count',orientation='v',boxpoints=False,annotations=None,keys=False,
    bestfit=False,bestfit_colors=None,mean=False,mean_colors=None,categories='',
    x='',y='',z='',text='',gridcolor=None,zerolinecolor=None,
    margin=None,labels=None,values=None,secondary_y='',secondary_y_title='',
    subplots=False,shape=None,error_x=None,error_y=None,error_type='data',
    locations=None,lon=None,lat=None,asFrame=False,asDates=False,
    asFigure=False,asImage=False,dimensions=None,asPlot=False,asUrl=False,online=None,**kwargs,
)

cufflinks的7大绘图主题风格:

cf.getThemes()

在这里插入图片描述
cufflinks支持的色盘:

cf.colors.scales()

在这里插入图片描述

四、数据说明

我们使用sklearn自带的iris数据集:

from sklearn import datasets
iris = datasets.load_iris()
df = pd.DataFrame(iris.data,columns=iris.feature_names)
df.head(3)

在这里插入图片描述

df["target"] = iris.target
df.head(3)

在这里插入图片描述
基于对应关系进行转换:

0:'setosa', 1:'versicolor', 2:'virginica'
df["id"] = df["target"].map({0:'setosa', 1:'versicolor', 2:'virginica'})
df.head(3)

在这里插入图片描述

五、折线图

默认是折线图:

df.iplot()

# df.iplot(kind="scatter")  # 等价

在这里插入图片描述
对折线进行填充:

df.iplot(kind="scatter",fill=True)

在这里插入图片描述

六、散点图

df.iloc[:100,:4].iplot(kind="scatter",
                       mode="markers", # 指定类型
                       # colors=["red","orange","blue","black"], # 颜色
                       size=7,  # 大小
                       theme="henanigans",  # 指定主题
                       symbol="star"  # 散点形状;默认是圆点
                      )

在这里插入图片描述
绘制带有回归趋势的散点图:

df.iloc[:,:3].iplot(kind="scatter",
                    mode="markers", 
                    bestfit=True,  # 拟合趋势
                    bestfit_colors=["red","blue","black"]  # 拟合线颜色
                      )

在这里插入图片描述

七、气泡图

df.iplot(kind="bubble",x="sepal length (cm)",y="sepal width (cm)",size="target")

在这里插入图片描述

八、柱状图

df.head(20).iplot(kind="bar")

在这里插入图片描述
堆叠柱状图 :

df.iplot(kind="bar", barmode="stack")

在这里插入图片描述
取出部分dataframe数据下绘图:

df.iloc[:30,:3].iplot(kind="bar", barmode="stack")

在这里插入图片描述
水平柱状图:

df.iloc[:20,:2].iplot(kind="barh", barmode="stack")

在这里插入图片描述
也可以通过参数orientation进行设置:v-垂直方向,h-水平方向

df.iloc[:20,:2].iplot(kind="bar", 
                      barmode="stack", 
                      orientation="h",
                      theme="space",  # 指定主题
                     )

在这里插入图片描述

九、箱型图box

df.iloc[:60,:4].iplot(kind="box")

在这里插入图片描述

df.iloc[:60,:4].iplot(kind="box",boxpoints="all")

在这里插入图片描述

df.iloc[:60,:4].iplot(kind="box",boxpoints="outliers")  

在这里插入图片描述

df.iloc[:60,:4].iplot(kind="box",boxpoints="suspectedoutliers")

在这里插入图片描述

十、直方图

df.iloc[:,:4].iplot(kind="histogram")

在这里插入图片描述

十一、小提琴图

df.columns
Index(['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)',
       'petal width (cm)', 'target', 'id'],
      dtype='object')
df.iloc[:,:].iplot(kind="violin",data_header='sepal length (cm)')

在这里插入图片描述

十二、热力图heatmap

我们需要先生成透视表的数据:

data = pd.pivot_table(df,index="id",values=["sepal length (cm)","sepal width (cm)"])
data

在这里插入图片描述

data.iplot(kind="heatmap")

在这里插入图片描述

十三、3d图

df.iplot(kind="scatter3d",
         x="sepal length (cm)", # 指定三个轴的数据
         y="sepal width (cm)",
         z="petal length (cm)",
         categories="id",
         xTitle="sepal length",  # 指定3个轴的标题
         yTitle="sepal width",
         zTitle="petal length"
        )

在这里插入图片描述

十四、散点矩阵图

df.iloc[:,:4].scatter_matrix()

在这里插入图片描述

十五、子图

df.iloc[:,:4].iplot(kind="bar",
                    barmode="stack", # 模式
                    title="绘制子图",  # 标题
                    subplots=True, # 子图开始
                    shape=(2,2),  # n行m列
                    shared_xaxes=True,  # 是否共享x轴
                    vertical_spacing=0.08,  # 垂直和水平间距
                    horizontal_spacing=0.05,
                    subplot_titles=True,  # 开启子图名称
                    legend=False  # 是否显示图例
                   )

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/669752.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能汽车 | 为什么是高压,为什么800V?

摘要: 在谈到高压储能以及高压动力电池时候,有提到400V的,800V的,还有光伏储能用的1500V的;为什么是高压?本文做个总结。 1、李想看高压系统架构 今春李想的发言,从用户需求,市场需…

vue elementUI封装的无限多级导航菜单(递归循环)

需要封装成两个文件&#xff1a; menu/index.vue <template><el-menuclass"box-card"unique-opened:collapse"$store.state.isCollapse":default-active"$store.state.nowPage"background-color"#2f3332"text-color"…

浅谈电力通信与泛在电力物联网技术的应用与发展

安科瑞 崔丽洁 摘要&#xff1a;随着我国社会经济的快速发展&#xff0c;我国科技实力得到了巨大的提升&#xff0c;当前互联网通信技术在社会中得到了广泛的应用。随着电力通信技术的快速发展与更新&#xff0c;泛在电力物联网建设成为电力通讯发展的重要方向。本文已泛在电力…

股票量化分析工具QTYX使用攻略——每日涨停数据选股(更新2.6.6)

搭建自己的量化系统 如果要长期在市场中立于不败之地&#xff01;必须要形成一套自己的交易系统。 如何学会搭建自己的量化交易系统&#xff1f; 边学习边实战&#xff0c;在实战中学习才是最有效地方式。于是我们分享一个即可以用于学习&#xff0c;也可以用于实战炒股分析的量…

深入剖析Java 8的Stream并行原理,加速你的程序!

大家好&#xff0c;我是小米&#xff0c;在本期技术分享中&#xff0c;我将为大家详细介绍JDK1.8中的Stream以及它的并行操作原理。Stream是Java 8引入的一个强大的数据处理工具&#xff0c;可以让我们以一种简洁、高效的方式对集合数据进行操作和处理。接下来&#xff0c;我们…

C++初阶—模板进阶

目录 1. 非类型模板参数及容器arrary 2. 模板的特化 2.1 概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 2.3.2 偏特化 2.3.3 类模板特化应用示例 3. 模板分离编译 3.1 什么是分离编译 3.2 模板的分离编译 3.3 解决方法 4. 模板总结 1. 非类型模板参数及容器a…

K8S:二进制安装K8S(单台master)安装etcd和master

系列文章目录 文章目录 系列文章目录一、安装K8S1.系统初始化配置2.部署docker引擎3.部署etcd集群 二、1.2. 总结 一、安装K8S 1.系统初始化配置 注意&#xff1a;该操作在所有node节点上进行&#xff0c;为k8s集群提供适合的初始化部署环境 #所有节点执行 systemctl stop f…

SSM长白山旅游网站-计算机毕设 附源码87175

SSM长白山旅游网站 目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3 论文结构与章节安排 2 长白山旅游网站系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2…

编译原理笔记9:语法分析树、语法树、二义性的消除

目录 语法分析树分析树与语言和文法的关系 语法树二义性及二义性的消除二义性问题优先级、结合性&#xff1a;引起二义性的根本原因【悬空&#xff08;dangling&#xff09;else】 问题 二义性的消除1. 改写二义文法为非二义文法让我们来搞【悬空 else 】罢&#xff01; 2. 规定…

数据分析年轻人的消费动向,小红书盲盒营销怎么玩?

一、ESG营销视角&#xff1a;Z世代年轻价值观的转向 近期&#xff0c;深受品牌方热议的ESG营销是什么呢&#xff1f; ESG 是 Environment&#xff08;环境&#xff09;、Society&#xff08;社会&#xff09; 和 Governance&#xff08;治理&#xff09;的缩写&#xff0c;是…

【openvpn】TAP模式

TAP与TUN模式简介 在OpenVPN中有两种工作模式&#xff0c;一种称为 TUN(tunnel)模式&#xff0c;即通道的意思&#xff1b;另一种是TAP(Terminal Access Point)模式&#xff0c;即一种网络设备或软件虚拟设备的意思。 TUN模式是一种虚拟点对点的网络设备模式。通常用于实现点…

即视角|出海正当时:欧美、东南亚、中东、拉美市场观察

即视角 Insight 共享即构新洞察&#xff0c;共建行业新动能——ZEGO即构科技基于音视频技术领域的多年深耕&#xff0c;综合面向各行业的服务经验&#xff0c;推出【即视角】栏目&#xff0c;发布即构对行业的洞察。欢迎大家探讨论道&#xff0c;共驱前行。 https://v.douyin…

【Note9】

9.PECI&#xff08;Platform Environment Control Interface&#xff09;&#xff1a;peci是 intel提供的私有协议&#xff0c;openbmc是由intel授权的&#xff0c;其他不授权是不能用。硬件上是一根线&#xff0c;不像i2c是2根线 11.1 模式和命令介绍&#xff1a;peci1.1只支…

华为OD机试之拔河比赛(Java源码)

文章目录 拔河比赛题目描述输入描述输出描述示例代码 拔河比赛 题目描述 公司最近准备进行拔河比赛&#xff0c;需要在全部员工中进行挑选。 选拔的规则如下&#xff1a; 按照身高优先、体重次优先的方式准备比赛阵容&#xff1b;规定参赛的队伍派出10名选手。 请实现一个选…

Imagination如何引领更安全的汽车行业?

如果您想购买一款全新的车辆&#xff0c;它很有可能配备数字显示屏&#xff0c;为用户体验提供丰富的驾驶体验&#xff0c;并可自由设置显示。想要更动感的仪表盘&#xff1f;那也没问题&#xff0c;只需改变驾驶主题。亦或是把音乐放在居中位置&#xff0c;同时在另一个屏幕上…

兼容性测试可否提高用户满意度?

兼容性测试可否提高用户满意度? 在信息化时代&#xff0c;软件应用的兼容性一直是一个重要的问题。由于操作系统版本、硬件设备、浏览器等因素的差异&#xff0c;软件在不同环境下运行的稳定性和表现也会不同。因此&#xff0c;如果对软件在不同的环境下进行兼容性测试&#x…

qt信号槽

目录 自定义信号槽 所谓信号槽&#xff0c;实际就是观察者模式 (发布 - 订阅模式)。当某个事件发生之后&#xff0c;比如&#xff0c;按钮检测到自己被点击了一下&#xff0c;它就会发出一个信号&#xff08;signal&#xff09;。这种发出是没有目的的&#xff0c;类似广播。如…

springboot实验室管理系统-计算机毕设 附源码86757

springboot实验室管理系统 摘 要 验室管理系统是将实验室的分析仪器通过计算机网络连起来&#xff0c;采用科学的管理思想和先进的数据库技术&#xff0c;实现以实验室为核心的整体环境的全方位管理。它集用户管理&#xff0c;实验室信息管理&#xff0c;实验室预约管理&#x…

【历史上的今天】6 月 21 日:第一台存储程序计算机首次运行;XML 之父诞生;IBM 推出 AS/400

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 6 月 21 日&#xff0c;在 23 年前的今天&#xff0c;中国联通公司在香港、纽约成功上市&#xff0c;筹资 56.5 亿美元&#xff0c;进入全球首次股票公开发行史…

LeetCode - #86 分隔链表

文章目录 前言1. 描述2. 示例3. 答案关于我们 前言 我们社区陆续会将顾毅&#xff08;Netflix 增长黑客&#xff0c;《iOS 面试之道》作者&#xff0c;ACE 职业健身教练。&#xff09;的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 LeetCode 算法到目前我们已经更新…