8个plotly绘图技巧

文章目录

    • 什么是Plotly
    • plolty绘图如何添加标题,及控制标题的颜色和大小?
    • plotly绘图如何自定义x轴和y轴的名称
    • 饼图如何同时显示百分比和数值
    • 柱状图宽度
    • 如何添加注释
    • 如何绘制多子图
    • 如何添加图例以及控制其颜色、大小、位置等
    • 桑基图
      • Python技术资源分享
        • 1、Python所有方向的学习路线
        • 2、学习软件
        • 3、入门学习视频
        • 4、实战案例
        • 5、清华编程大佬出品《漫画看学Python》
        • 6、Python副业兼职与全职路线


什么是Plotly

Plotly 是一个用于创建交互式数据可视化的 Python 库,它允许你轻松地生成各种类型的图表和图形,包括折线图、散点图、柱状图、饼图、热力图、3D 图等。

官网学习地址:plotly.com/

Plotly 可以在 Jupyter Notebook、Python 脚本和 Web 应用程序中使用,它提供了多种工具和接口,使数据科学家、分析师和开发人员能够有效地探索和传达数据。

以下是 Plotly 的一些主要特点和优点:

  1. 交互性: Plotly 创建的图表具有强大的交互性,用户可以通过鼠标悬停、缩放、平移等操作与图表进行互动。这使得数据探索更加直观和有趣。
  2. 多种图表类型: Plotly 支持多种常见的图表类型,适用于不同类型的数据。你可以轻松创建折线图、散点图、柱状图、热力图、桑基图、3D 图等。
  3. 美观性: Plotly 图表具有出色的视觉效果和美观性,支持自定义样式和主题,以满足不同的可视化需求。
  4. 支持多平台: Plotly 可以在多种环境中使用,包括 Jupyter Notebook、Python 脚本、Web 应用程序以及一些 BI 工具中。
  5. 云服务: Plotly 提供云端服务,允许你将图表和可视化部署到云上,以供在线共享和嵌入到网站或应用中。
  6. 开源和商业版本: Plotly 有一个开源版本,可以免费使用,并有商业版本供付费订阅,提供更多高级功能和支持。

总之,Plotly 是一个强大且灵活的数据可视化工具,适用于各种数据分析和可视化需求。无论是用于数据探索、报告生成,还是创建交互式数据仪表板,Plotly 都是一个有力的选择。

plolty绘图如何添加标题,及控制标题的颜色和大小?

In [1]:

import plotly.express as px

# 创建一个示例数据框
data = px.data.iris()
data.head()

Out[1]:

绘图代码如下:

In [2]:

# 创建散点图
fig = px.scatter(data, 
                 x='sepal_width',
                 y='sepal_length',
                 color='species', 
                 title='Iris 数据集散点图')

# 设置标题的颜色和大小
fig.update_layout(
    title={
        'text': 'Iris 数据集散点图',
        'x': 0.5,  # 标题水平居中
        'y': 0.95,  # 标题距离图表顶部的距离
        'xanchor': 'center',  # x轴锚点为中心
        'yanchor': 'top',  # y轴锚点为顶部
        'font': {
            'size': 24,  # 标题字体大小
            'color': 'blue'  # 标题颜色
        }
    }
)

# 显示图表
fig.show()

plotly绘图如何自定义x轴和y轴的名称

In [3]:

import plotly.graph_objects as go

# 创建散点图
fig = go.Figure()

# 添加数据
x_data = [1, 2, 3, 4]
y_data = [10, 11, 9, 12]

# 添加散点图
fig.add_trace(go.Scatter(x=x_data, y=y_data, mode="markers"))

# 自定义 x 轴和 y 轴的名称
fig.update_xaxes(title_text="自定义X轴名称")
fig.update_yaxes(title_text="自定义Y轴名称")

# 显示图表
fig.show()

饼图如何同时显示百分比和数值

In [4]:

import plotly.express as px

# 创建示例数据
data = px.data.gapminder().query("year == 2007")
data.head()

Out[4]:

# 创建饼图
fig = px.pie(data, 
             values='pop', 
             names='continent',
             title='2007 年各大洲人口分布')

# 设置textinfo属性来同时显示百分比和数值
fig.update_traces(
    textinfo='percent+label+value',  # 显示百分比、标签和数值
    pull=[0, 0.1, 0, 0, 0],  # 可以添加pull属性来突出显示特定扇形
)

# 显示图表
fig.show()

柱状图宽度

In [6]:

import plotly.express as px

# 创建示例数据
data = px.data.gapminder().query("year == 2007")
data.head()

1111

# 创建柱状图
fig = px.bar(data, 
             x='continent', 
             y='pop', 
             title='2007 年各大洲人口')

# 设置柱子宽度和柱组间隔
fig.update_layout(
    bargap=0.6,         # 控制柱子宽度,0.2表示柱子之间有20%的空隙
    bargroupgap=0.1     # 控制不同柱组之间的间隔,0.1表示柱组之间有10%的空隙
)

# 显示图表
fig.show()

如何添加注释

In [8]:

import plotly.graph_objects as go

# 创建一个简单的散点图
fig = go.Figure(go.Scatter(
    x=[1, 2, 3, 4, 5],
    y=[10, 11, 12, 11, 10],
    mode='markers',
    marker=dict(size=10)
))

# 添加注释
fig.add_annotation(
    text='重要点',  # 注释文本
    x=3,             # x 轴坐标
    y=12,            # y 轴坐标
    showarrow=True,  # 是否显示箭头
    arrowhead=2,     # 箭头样式(2表示燕尾箭头)
    arrowsize=1.5,   # 箭头大小
)

# 显示图表
fig.show()


如何绘制多子图

In [9]:

import plotly.graph_objects as go
from plotly.subplots import make_subplots

# 创建多子图布局,指定行数和列数
fig = make_subplots(rows=2, 
                    cols=2, 
                    subplot_titles=("子图1", "子图2", "子图3", "子图4"),  # 子图标题
                    specs=[[{}, {}], [{}, {"type": "pie"}]]  # 每个子图的类型
                   )

# 添加子图1:散点图
trace1 = go.Scatter(x=[1, 2, 3], y=[4, 5, 6], mode="markers", name="散点图")
fig.add_trace(trace1, row=1, col=1)

# 添加子图2:柱状图
trace2 = go.Bar(x=[1, 2, 3], y=[2, 3, 1], name="柱状图")
fig.add_trace(trace2, row=1, col=2)

# 添加子图3:折线图
trace3 = go.Scatter(x=[1, 2, 3], y=[10, 8, 9], mode="lines", name="折线图")
fig.add_trace(trace3, row=2, col=1)

# 添加子图4:饼图
trace4 = go.Pie(labels=["A", "B", "C"], values=[40, 30, 30], name="饼图")
fig.add_trace(trace4, row=2, col=2)

# 更新子图的布局属性
fig.update_layout(
    title_text="多子图示例",
    showlegend=False,  # 隐藏图例
)

# 显示图表
fig.show()

如何添加图例以及控制其颜色、大小、位置等

In [10]:

import plotly.graph_objects as go

# 创建散点图
fig = go.Figure()

# 添加散点图数据并设置图例标签、颜色和大小
fig.add_trace(go.Scatter(x=[1, 2, 3], 
                         y=[4, 5, 6], 
                         mode="markers", 
                         name="数据集A"))

fig.add_trace(go.Scatter(x=[1, 2, 3],
                         y=[2, 3, 1], 
                         mode="markers", 
                         name="数据集B"))

# 控制图例颜色和大小
fig.update_traces(marker=dict(size=10, color="blue"), selector=dict(mode="markers+text"))

# 自定义图例位置
fig.update_layout(legend=dict(x=1.1, y=1))

# 显示图表
fig.show()

桑基图

In [11]:

import plotly.graph_objects as go

# 定义节点和链接
nodes = ["A", "B", "C", "D", "E"]
links = [
    {"source": 0, "target": 1, "value": 10, "label": "10"},  # 从节点 A 到节点 B 的流量为 10
    {"source": 0, "target": 2, "value": 5, "label": "5"},   # 从节点 A 到节点 C 的流量为 5
    {"source": 1, "target": 3, "value": 7, "label": "7"},   # 从节点 B 到节点 D 的流量为 7
    {"source": 2, "target": 3, "value": 3, "label": "3"},   # 从节点 C 到节点 D 的流量为 3
    {"source": 2, "target": 4, "value": 2, "label": "2"},   # 从节点 C 到节点 E 的流量为 2
]

# 创建桑基图
fig = go.Figure(go.Sankey(
    node=dict(
        pad=15,
        thickness=20,
        line=dict(color="black", width=0.5),
        label=nodes
    ),
    link=dict(
        source=[link["source"] for link in links],
        target=[link["target"] for link in links],
        value=[link["value"] for link in links],
        label=[link["label"] for link in links],  # 添加数值标签
    )
))

# 设置图表布局
fig.update_layout(title_text="桑基图示例")

# 显示图表
fig.show()


Python技术资源分享

小编是一名Python开发工程师,自己整理了一套 【最新的Python系统学习教程】,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。

保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

如果你是准备学习Python或者正在学习,下面这些你应该能用得上:

1、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

2、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

在这里插入图片描述

3、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

img

4、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

5、清华编程大佬出品《漫画看学Python》

用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。

在这里插入图片描述

6、Python副业兼职与全职路线

在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

👉CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取安全链接,放心点击

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

打开3d模型时显示不匹配怎么办---模大狮模型网

当3d模型打开时,显示不匹配的情况可能有以下几个原因和解决方法: 文件格式不匹配:检查您所使用的3D软件是否支持打开该模型文件格式。不同的软件支持不同的文件格式,如果文件格式不匹配,可能无法正确加载和显示模型。尝…

新能源汽车制造设备状态监测:无线温振传感器的应用

随着全球对环境保护的关注度不断增加,新能源汽车的市场需求正在逐步扩大。而为了满足这一需求,新能源汽车制造企业必须依赖高效、可靠的设备来进行生产制造。然而,设备状态的监测与维护对于保证生产线的稳定运行至关重要。无线温振传感器作为…

【JVM篇】Java是如何实现平台无关的?

Java是如何实现平台无关的? ✔️什么是平台无关性✔️平台无关性的实现✔️Java虚拟机✔️字节码✔️Java语言规范 ✔️扩展知识仓✔️平台无关性的好处✔️ 有哪些语言实现了平台无关?✔️Java中基本数据类型的大小都是确定的吗? ✔️什么是平台无关性 平台无关性就是一种语…

dds 问题记录

Q1. 2023.12.29 一个participant内部的数据也会放到topic中进行发布、订阅吗?为什么?如图中的topic3。 (from 车载通信架构 —— DDS协议介绍https://mp.weixin.qq.com/s/IasCCsVJ7w-CHeyXGM6soQ)

Java创建线程执行任务的方法(一)

目录 1.继承Thread类 2.实现Runnab类 2.1实现Runnable类 2.2使用Lambda表达式 3.实现Callable类 3.1返回Integer类型数据 3.2返回String类型数据 3.3返回Object类型数据 4.匿名内部类 创建线程的方法:继承Thread类;实现Runnab类;匿名…

深度解析高防产品---游戏盾

游戏盾是针对游戏行业所推出的高度可定制的网络安全解决方案,游戏盾是高防产品系列中针对游戏行业的安全解决方案。游戏盾专为游戏行业定制,针对性解决游戏行业中复杂的DDoS攻击、游戏CC攻击等问题。游戏盾通过分布式的抗D节点,可以防御TB级大…

归并算法:分治而治的高效算法大揭秘(图文详解)

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《数据结构&算法》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 📋 前言 归并算法是我们算法中最常见的算法之一,其思想非常巧妙。本身归并是只能归并有序数组…

迁移Ubuntu报错问题

问题描述: 使用LxRunOffline-v3.5.0-mingw迁移Ubuntu至非系统盘时,出现如下报错 ‘Couldn’t set the case sensitive attribute of the directory “\?\C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\Loc…

Typora使用PicGo+Gitee上传图片报错403 Forbidden

Typora使用PicGoGitee上传图片报错403 Forbidden Typora使用PicGoGitee上传图片,上传失败了,错误信息如下 打开PicGo的日志文件查看,可以看到错误详情如下 换了一个插件github-plus重新配置,解决了这个问题 再打开日志查看&…

ubuntu:beyond compare 4 This license key has been revoked 解决办法

https://www.cnblogs.com/zhibei/p/12095431.html 错误如图所示: 解决办法: (1)先用find命令找到bcompare所在位置:sudo find /home/ -name *bcompare (2)进入 /home/whf/.config,删除/bco…

计算机网络——应用层与网络安全(六)

前言: 前几章我们已经对TCP/IP协议的下四层已经有了一个简单的认识与了解,下面让我们对它的最顶层,应用层进行一个简单的学习与认识,由于计算机网络多样的连接形式、不均匀的终端分布,以及网络的开放性和互联性等特征&…

VerticalGridView适配触摸屏踩坑,触摸滑动时位置重置/闪烁问题

VerticalGridView是什么? VerticalGridView是安卓leanback库的列表组件,用于支持使用遥控器(按键事件)浏览列表。 它与RecyclerView的继承关系是:VerticalGridView→BaseGridView→RecyclerView 首先我想吐槽一下leanback的BaseGridView相关组件,耦合度较高,并且不允许开…

DOA估计算法——迭代自适应算法(IAA)

1 简介 迭代自适应法 (Iterative Adaptive Approach,IAA)估计算法最早由美国的电气工程师和数学家Robert Schmidt和Roy A. Kuc在1986年的一篇论文"Multiple Emitter Location and Signal Parameter Estimation"中首次提出了这一算法, IAA DOA …

[LitCTF 2023]作业管理系统

[LitCTF 2023]作业管理系统 信息搜集 进来发现要登录: 但是别着急,先查看源码或者抓个包: 可以看到源码中给出了提示:默认账户admin admin 。 账户名:admin,密码:admin,成功登录。…

腾讯云轻量应用服务器租用优惠价格表(多配置报价)

腾讯云轻量应用服务器优惠价格表,12月最新报价,腾讯云轻量2核2G3M带宽62元一年、2核2G4M轻量服务器118元一年,540元三年、2核4G5M带宽218元一年,756元三年、4核8G12M轻量服务器646元15个月,CVM云服务器S5实例2核2G配置…

Gin 源码深度解析及实现

介绍 什么是 gin ? 一个轻量级高性能 HTTP Web 框架。 Introduction | Gin Web Framework (gin-gonic.com) Gin 是一个用 Go (Golang) 编写的 HTTP Web 框架。 它具有类似 Martini 的 API,但性能比 Martini 快 40 倍。 为什么使用 gin ? In…

基于CNN和双向gru的心跳分类系统

CNN and Bidirectional GRU-Based Heartbeat Sound Classification Architecture for Elderly People是发布在2023 MDPI Mathematics上的论文,提出了基于卷积神经网络和双向门控循环单元(CNN BiGRU)注意力的心跳声分类,论文不仅显示了模型还构建了完整的…

车联网的安全风险与应对措施

安全风险 1、恶意软件 攻击者可以通过入侵厂商或供应商网络,用恶意软件(如病毒、木马、勒索软件等)感染车联网系统组件,从而获得对车辆的控制权或窃取敏感信息。例如,一名安全研究人员成功入侵了特斯拉(T…

Vue使用Element table表格格式化GMT时间为Shanghai时间

Vue使用Element表格格式化GMT时间为Shanghai时间 说明 阿里巴巴java开发规范规定,数据库必备gmt_create、gmt_modified字段,使用的是GMT时间,在中国使用必然要转换我中国时间。 在阿里巴巴的Java开发规范中,要求每个表都必备三…

【C语言深度剖析——第一节(关键字1)】《C语言深度解剖》+蛋哥分析+个人理解

你未曾见过火光,难怪甘愿漂泊寒夜 本文由睡觉待开机原创,未经允许不得转载。 本内容在csdn网站首发 欢迎各位点赞—评论—收藏 如果存在不足之处请评论留言,共同进步! 首先简单介绍一下《C语言深度解剖》: 全书特点&am…