手把手教你用plotly绘制excel中常见的16种图表(下)
大家好,我是才哥。
上一期咱们介绍《手把手教你用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种图表(下)相关推荐
- 手把手教你用plotly绘制excel中常见的16种图表(上)
大家好,我是才哥. 最近不是在学习plotly嘛,为了方便理解,我们这里取excel绘图中常见的16种图表为例,分两期演示这些基础图表怎么用plotly进行绘制! 第一部分:柱状图.条形图.折线图.面 ...
- 手把手教你用plotly绘制excel中常见的8种图表
最近不是在学习plotly嘛,为了方便理解,我们这里取excel绘图中常见的16种图表为例,分两期演示这些基础图表怎么用plotly进行绘制! 第一部分:柱状图.条形图.折线图.面积图.饼图与圆环图. ...
- 手把手教你用Python实现Excel中的Vlookup功能
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 像树一样成长. 一.前言 大家好, ...
- 数据可视化中常用的16种图表
在信息爆炸的时代,越来越多的数据堆积.但是,这些密集数据没有重点关注并且可读性较差.因此,我们需要 数据可视化 以帮助数据易于理解和接受.相反,可视化更加直观和有意义,并且使用适当的图表来可视化数据 ...
- 用python画皇冠_手把手教你用 Python 绘制酷炫的桑基图!
原标题:手把手教你用 Python 绘制酷炫的桑基图! 作者 | 周志鹏 责编 | 郭 芮 最近,不止一次收到小伙伴的截图追问: "这个图叫什么???" "这个图真好看! ...
- graphpad画生存曲线怎么样去掉删失点_手把手教你用graphpadprism绘制生存曲线
手把手教你用 graphpadprism 绘制生存曲线 疾病预后研究中,生存曲线是必不可少的素材之一,其 重要性不言而喻.那么,当获取到生存数据后应该如何绘制 一幅对得起读者和编辑的生存曲线呢? 在目 ...
- excel设置行高_手把手教你用wps表格excel制作田字格书法练习字帖
自己给孩子量身定制一个吧,跟着香哥走,手把手教你用wps表格excel制作田字格书法练习字帖,咱用的软件是wps表格. 第一步:设置列宽和行高,都为36磅. 第二步:选中四个方格,右键单击,在弹出的菜 ...
- Nginx变身爆火神器,手把手教你在永洪BI中应用
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行.其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服 ...
- 教你用python在excel中“画画”
有意思系列----教你用python在excel中画画 一.废话不多说,先看看成品 二.实现思路 1.图片相关知识说明 位图: 位图由一个个像素点组成,每个像素点都有自己的颜色.而我们可以操纵这些像素 ...
最新文章
- 【集合论】二元关系 ( 定义域 | 值域 | 域 | 逆运算 | 逆序合成运算 | 限制 | 像 | 单根 | 单值 | 合成运算的性质 )
- ML之分类预测之ElasticNet之PLoR:在二分类数据集上调用Glmnet库训练PLoR模型(T2)
- 三篇文章了解 TiDB 技术内幕——说存储
- 【深度学习】干货!小显存如何训练大模型
- linux系统vmalloc分配过大,Linux内核,iptables和vmalloc大小
- 使用QT创建PythonGUI程序
- 关于在页面中针对不同版本的IE浏览器实现不同的JS或者CSS样式
- 梅露可物语虚拟服务器,【图片】【萌新】主界面的使用方法(零基础版)【梅露可物语日服吧】_百度贴吧...
- Ubuntu的简单远程控制和远程桌面
- MTK:MVRAM操作
- C# 温故而知新:Stream篇(三)
- ORACLE 建库过程总结
- my97中文乱码问题
- springboot项目发布到独立的tomcat中运行
- 49.Linux/Unix 系统编程手册(下) -- 内存映射
- _beginthread, _beginthreadex
- 科学前沿 AI共拓!AI for Science论坛重磅来袭
- 梯形公式和辛普森的Matlab
- Android MediaPlayer使用注意
- NOI2016铜色记