大家好,我是才哥。

上一期咱们介绍《手把手教你用plotly绘制excel中常见的16种图表(上)》演示了8种常见图表,今天我们继续演示另外8种常见图表的绘制。

文章目录

  • 1. 树状图
  • 2. 旭日图
  • 3. 直方图
  • 4. 箱线图
  • 5. 瀑布图
  • 6. 漏斗图
  • 7. 股价图
  • 8. 地图

1. 树状图

树状图提供数据的分层视图,并便于识别模式,例如哪些商品是商店的畅销商品。树分支表示为矩形,每个子分支显示为更小的矩形。树状图适合比较层次结构内的比例,但是不适合显示最大类别与各数据点之间的层次结构级别,后面的旭日图可更加直观地显示这些内容。

# 自带数据集 tips
import plotly.express as pxdf = px.data.tips()
df.sample(5)

基础的树状图

import plotly.express as pxdf = px.data.tips()
df["all"] = "all" # in order to have a single root node
fig = px.treemap(df, path=['all', 'sex', 'day', 'time'], # 层级顺序 values='total_bill', # 面积大小用total_bill字段决定)
fig.show()

树状热力图

# 自带数据集 gapminder
df = px.data.gapminder()
df.sample(5)

# 绘制2007年各大洲各国家人口和人均寿命树状热力图
# 色块面积由人口决定,色块颜色由人均寿命决定
import plotly.express as px
import numpy as npdf= px.data.gapminder().query("year == 2007")
df["world"] = "world" # in order to have a single root node
fig = px.treemap(df, path=['world', 'continent', 'country'], values='pop',color='lifeExp', hover_data=['iso_alpha'],color_continuous_scale='RdBu',color_continuous_midpoint=np.average(df['lifeExp'], weights=df['pop']))
fig.show()

2. 旭日图

旭日图非常适合显示分层数据,层次结构的每个级别均通过一个环或圆形表示,最内层的圆表示层次结构的顶级。 不含任何分层数据(类别的一个级别)的旭日图与圆环图类似,但具有多个级别的类别的旭日图显示外环与内环的关系。旭日图在显示一个环如何被划分为作用片段时最有效,而另一种类型的分层图表树状图适合比较相对大小。

列表字典数据绘制旭日图

# 列表字典数据绘制旭日图
import plotly.express as pxdata = dict(character=["Eve", "Cain", "Seth", "Enos", "Noam", "Abel", "Awan", "Enoch", "Azura"],parent=["", "Eve", "Eve", "Seth", "Seth", "Eve", "Eve", "Awan", "Eve" ],value=[10, 14, 12, 10, 2, 6, 6, 4, 4])fig =px.sunburst(data,names='character',parents='parent',values='value',
)
fig.show()

pd.Dataframe类型数据下绘制 旭日图

# pd.Dataframe类型数据下绘制 旭日图
import plotly.express as pxdf = px.data.tips()
fig = px.sunburst(df, path=['day', 'time', 'sex'], values='total_bill')
fig.show()

旭日热力图

# 绘制2007年各大洲各国家人口和人均寿命旭日热力图
# 色块面积由人口决定,色块颜色由人均寿命决定
import plotly.express as px
import numpy as npdf = px.data.gapminder().query("year == 2007")
fig = px.sunburst(df, path=['continent', 'country'], values='pop',color='lifeExp', hover_data=['iso_alpha'],color_continuous_scale='RdBu',color_continuous_midpoint=np.average(df['lifeExp'], weights=df['pop']))
fig.show()

3. 直方图

直方图是显示频率数据的柱状图。

# 绘制total_bill直方图
import plotly.express as pxdf = px.data.tips()
fig = px.histogram(df, x="total_bill")
fig.show()

自定义分组nbins

# 分组,参数nbins
import plotly.express as pxdf = px.data.tips()
fig = px.histogram(df, x="total_bill", nbins=20, # 分成20组)
fig.show()

离散分类直方图

# 如果对离散或分类特征数据进行直方图绘制,和柱状图差不多
import plotly.express as pxdf = px.data.tips()
fig = px.histogram(df, x="day", # day 是星期,是 分类 数据)
fig.show()

4. 箱线图

箱型图又称盒须图,用于显示数据到四分位点的分布,突出显示平均值和离群值。箱形可能具有可垂直延长的名为“须线”的线条。 这些线条指示超出四分位点上限和下限的变化程度,处于这些线条或须线之外的任何点都被视为离群值。

# 箱型图,以total_bill字段绘制
import plotly.express as pxdf = px.data.tips()
fig = px.box(df, y="total_bill")
fig.show()

# 以time字段拆分,并用颜色区分
import plotly.express as pxdf = px.data.tips()
fig = px.box(df, x="time",  # 以 time字段拆分y="total_bill", color = 'time', # time字段区分颜色)
fig.show()

5. 瀑布图

瀑布图显示加上或减去值时的累计汇总,在理解一系列正值和负值对初始值(例如,净收入)的影响时,这种图表非常有用

列采用彩色编码,可以快速将正数与负数区分开来。初始值和最终值列通常从水平轴开始,而中间值则为浮动列。由于拥有这样的“外观”,瀑布图也称为桥梁图。

plotly.express中暂时没有瀑布图,我们需要用到plotly.graph_objects

import plotly.graph_objects as gofig = go.Figure(go.Waterfall(name = "20", orientation = "v",measure = ["relative", "relative", "total", "relative", "relative", "total"],x = ["Sales", "Consulting", "Net revenue", "Purchases", "Other expenses", "Profit before tax"],textposition = "outside",text = ["+60", "+80", "", "-40", "-20", "Total"],y = [60, 80, 0, -40, -20, 0],connector = {"line":{"color":"rgb(63, 63, 63)"}},
))fig.update_layout(title = "Profit and loss statement 2018",showlegend = True
)fig.show()

6. 漏斗图

漏斗图显示流程中多个阶段的值。

例如,可以使用漏斗图来显示游戏注册付费流程中每个阶段的潜在玩数。通常情况下,值逐渐减小,从而使条形图呈现出漏斗形状。

基础漏斗图

# 基础漏斗图
import plotly.express as pxdata = dict(number=[39, 27.4, 20.6, 11, 2],stage=["Website visit", "Downloads", "Potential customers", "Requested price", "invoice sent"])
fig = px.funnel(data, x='number', # 值y='stage', # 阶段)
fig.show()

多漏斗图对比

这里我们演示直接从pd.Dataframe类型数据操作绘制的情况

# 构建测试数据 pd.Dataframe类型
import pandas as pdstages = ["点击", "下载", "安装", "注册", "付费"]
df_mtl = pd.DataFrame(dict(number=[39, 27.4, 20.6, 11, 3], stage=stages))
df_mtl['office'] = '快手'
df_toronto = pd.DataFrame(dict(number=[52, 36, 18, 14, 5], stage=stages))
df_toronto['office'] = '抖音'
df = pd.concat([df_mtl, df_toronto], axis=0)df.sample(5)

import plotly.express as pxfig = px.funnel(df, x='number', y='stage', color='office')
fig.show()

7. 股价图

以特定顺序排列在工作表的列或行中的数据可以绘制为股价图。

顾名思义,股价图可以显示股价的波动。不过这种图表也可以显示其他数据(如日降雨量和每年温度)的波动,必须按正确的顺序组织数据才能创建股价图。

plotly.express中暂时没有瀑布图,我们需要用到plotly.graph_objects

import plotly.graph_objects as goimport pandas as pd
from datetime import datetime# 获取案例数据
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')
df.head()

# 绘制简单的 股价图
import plotly.graph_objects as gofig = go.Figure(data=[go.Candlestick(x=df['Date'],open=df['AAPL.Open'],high=df['AAPL.High'],low=df['AAPL.Low'],close=df['AAPL.Close'])])
fig.show()

取消滑块控件

# 去掉滑块控件
import plotly.graph_objects as gofig = go.Figure(data=[go.Candlestick(x=df['Date'],open=df['AAPL.Open'], high=df['AAPL.High'],low=df['AAPL.Low'], close=df['AAPL.Close'])])
fig.update_layout(xaxis_rangeslider_visible=False)
fig.show()

8. 地图

可使用地图图表比较值并跨地理区域显示类别。

数据中含有地理区域(如国家/地区、省/自治区/直辖市、县或邮政编码)时使用地图图表。

plotly的地图绘制形式有很多种,这里不做更详细的介绍,我们后续再找个时间详细讲解。

这里用此前《北京8万二手房售价分析》里出现过的上海二手房经纬度数据来进行地图点的绘制,这份数据大家也可以回复0306获取。

import plotly.express as pxdf = pd.read_excel(r'F:\PythonCool\可视化\上海二手房经纬度.xlsx')
df.head()

# 绘制地图散点图
import plotly.express as pxfig = px.scatter_mapbox(df, lat="纬度", lon="经度",color='均价',color_discrete_sequence=["均价"], color_continuous_scale='Reds',range_color = [30000, 150000],zoom=8, height=800)
fig.update_layout(mapbox_style="open-street-map") # 开启街道网格
fig.show()

以上就是本期的全部内容,如果大家想更加深入了解plotly可视化操作,建议直接前往官网查看案例做演示,真的很全哦。

最后,顺手点个赞吧~

手把手教你用plotly绘制excel中常见的16种图表(下)相关推荐

  1. 手把手教你用plotly绘制excel中常见的16种图表(上)

    大家好,我是才哥. 最近不是在学习plotly嘛,为了方便理解,我们这里取excel绘图中常见的16种图表为例,分两期演示这些基础图表怎么用plotly进行绘制! 第一部分:柱状图.条形图.折线图.面 ...

  2. 手把手教你用plotly绘制excel中常见的8种图表

    最近不是在学习plotly嘛,为了方便理解,我们这里取excel绘图中常见的16种图表为例,分两期演示这些基础图表怎么用plotly进行绘制! 第一部分:柱状图.条形图.折线图.面积图.饼图与圆环图. ...

  3. 手把手教你用Python实现Excel中的Vlookup功能

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 像树一样成长. 一.前言 大家好, ...

  4. 数据可视化中常用的16种图表

    在信息爆炸的时代,越来越多的数据堆积.但是,这些密集数据没有重点关注并且可读性较差.因此,我们需要 数据可视化  以帮助数据易于理解和接受.相反,可视化更加直观和有意义,并且使用适当的图表来可视化数据 ...

  5. 用python画皇冠_手把手教你用 Python 绘制酷炫的桑基图!

    原标题:手把手教你用 Python 绘制酷炫的桑基图! 作者 | 周志鹏 责编 | 郭 芮 最近,不止一次收到小伙伴的截图追问: "这个图叫什么???" "这个图真好看! ...

  6. graphpad画生存曲线怎么样去掉删失点_手把手教你用graphpadprism绘制生存曲线

    手把手教你用 graphpadprism 绘制生存曲线 疾病预后研究中,生存曲线是必不可少的素材之一,其 重要性不言而喻.那么,当获取到生存数据后应该如何绘制 一幅对得起读者和编辑的生存曲线呢? 在目 ...

  7. excel设置行高_手把手教你用wps表格excel制作田字格书法练习字帖

    自己给孩子量身定制一个吧,跟着香哥走,手把手教你用wps表格excel制作田字格书法练习字帖,咱用的软件是wps表格. 第一步:设置列宽和行高,都为36磅. 第二步:选中四个方格,右键单击,在弹出的菜 ...

  8. Nginx变身爆火神器,手把手教你在永洪BI中应用

    Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行.其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服 ...

  9. 教你用python在excel中“画画”

    有意思系列----教你用python在excel中画画 一.废话不多说,先看看成品 二.实现思路 1.图片相关知识说明 位图: 位图由一个个像素点组成,每个像素点都有自己的颜色.而我们可以操纵这些像素 ...

最新文章

  1. 【集合论】二元关系 ( 定义域 | 值域 | 域 | 逆运算 | 逆序合成运算 | 限制 | 像 | 单根 | 单值 | 合成运算的性质 )
  2. ML之分类预测之ElasticNet之PLoR:在二分类数据集上调用Glmnet库训练PLoR模型(T2)
  3. 三篇文章了解 TiDB 技术内幕——说存储
  4. 【深度学习】干货!小显存如何训练大模型
  5. linux系统vmalloc分配过大,Linux内核,iptables和vmalloc大小
  6. 使用QT创建PythonGUI程序
  7. 关于在页面中针对不同版本的IE浏览器实现不同的JS或者CSS样式
  8. 梅露可物语虚拟服务器,【图片】【萌新】主界面的使用方法(零基础版)【梅露可物语日服吧】_百度贴吧...
  9. Ubuntu的简单远程控制和远程桌面
  10. MTK:MVRAM操作
  11. C# 温故而知新:Stream篇(三)
  12. ORACLE 建库过程总结
  13. my97中文乱码问题
  14. springboot项目发布到独立的tomcat中运行
  15. 49.Linux/Unix 系统编程手册(下) -- 内存映射
  16. _beginthread, _beginthreadex
  17. 科学前沿 AI共拓!AI for Science论坛重磅来袭
  18. 梯形公式和辛普森的Matlab
  19. Android MediaPlayer使用注意
  20. NOI2016铜色记

热门文章

  1. 三维地球Cesium.js的研究
  2. 我的世界服务器怎么修改材质包,超实用解析我的世界服务器怎么加材质包
  3. 全球与中国三轴磁力计市场深度研究分析报告
  4. spring API扫描插件
  5. 计算机技能节大赛广播稿,技能竞赛欢迎词
  6. 文件分割小精灵 v1.01 下载
  7. win7wifi共享
  8. DirectSound 笔记
  9. html课题背景介绍,办公自动化系统论文-课题研究的背景和意义及国内外发展状况.doc...
  10. 【crunch bang】字体美化