学习笔记-Plotly的基本使用方式

2023-09-24 13 0

Plotly的基本使用方式

一、前言

在学习Python的过程中,经常能听到周围的小伙伴提到利用Python进行数据分析和数据可视化。那么什么是数据分析?数据可视化又是什么?所谓的数据分析就是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。而数据可视化就是将数据分析这一过程的结果利用图片等形式直观的展现出来。
由于Python拥有着庞大的第三方库和各类模块,在数据分析和数据可视化方面我们通常是利用Pandas,matplotlib,echarts等来进行。但在最近的学习过程中,我又发现了一个新大陆——利用Plotly进行数据可视化。

二、Plotly的简介和安装教程

1.Plotly的简介

Plotly是Python 库中一种互动,开源绘图库,支持 40 多种独特的图表类型,涵盖各种统计、财务、地理、科学和三维用例。构建在绘图 JavaScript 库之上(plotly. js),Python 用户可以创建基于web的交互式的可视化效果,这些可视化效果既可以显示在 Jupyter notebook中,也可以保存到独立的 HTML 文件,或者使用 Dash 作为纯 Python 构建的 Web 应用程序的一部分。Python 库有时称为"plotly.py",以将其与 JavaScript 库区分开来。
由于plotly的绘制图像有在线和离线两种方式,但在线绘图需要注册账号获取API key,较为麻烦,所以本文仅介绍离线绘图的方式。

2.Plotly的安装教程

关于Plotly的安装方式,我常用的方式有两种,一是Win+R打开cmd,然后输入pip install plotly,但为了节约时间,我通常会利用清华源镜像去安装。安装过程如下:
在这里插入图片描述
普通安装
在这里插入图片描述
利用清华源镜像安装
在这里插入图片描述
第二种方式就是在Pycharm中安装,因为我个人常用Pycharm进行Python的编译与开发,所以一般在安装第三方库时都是在Pycharm上安装的。
第一步在Pycharm的右下角找到如图所示的Python环境单击左键,然后点击Interpreter Settings。
在这里插入图片描述
第二步点击右侧的"+“号进入模块安装界面,这里插一句”-"号表示将此模块删除,小三角形表示升级相应的模块。
在这里插入图片描述
第三步在搜索框中输入plotly,左侧表示的是不同网站下的plotly,安装的时候选择其中的一个即可,右侧的信息表示的是该模块当前的版本。
在这里插入图片描述
此外,我们还可以在jupyter notebook和conda里面进行安装,具体的方法各位小伙伴们可以参照其他博客进行操作,这里就不在过多赘述。

三、基本使用

1.Plotly的基本语法

这里介绍一个常用方法
go.Scatter(x,y,mode,name,marker,line)
其中x — 数据; y — 数据; mode — 线条类型; name — 图例名称
marker — 控制点的相关参数; line — 控制线条颜色
textpositon 是将text数据显示在条形柱上, outside是外面, inside是里面
下面用一个实例进行介绍:

#导入模块
import os
import pandas as pd
import numpy as np
import plotly as py
import plotly.graph_objs as go
from plotly.graph_objs import *os.dir('./TMP/html/')    #存放目录
income_tax = pd.read_table('./TMP/Datafile.txt')   #读取文件
pyplot = py.offline.plot
trace1 = Scatter(x = income_tax['year'], y = income_tax['x2'], mode = 'markers',name = '在职员工工资总收入')   #markers表示绘制成散点的形式
trace2 = Scatter(x = income_tax['year'], y = income_tax['x3'], mode = 'lines', name = '社会消费水平零售总额')
trace3 = Scatter(x = income_tax['year'], y = income_tax['x8'], mode = 'markers+lines',name = '地区生产总值')
data = [trace1,trace2,trace3]
pyplot(data)   #等价于py.offline.plot(data),因为前面的pyplot已经具有其功能,类似于import pandas as pd

如果想在notebook中显示图片,可以加上一句py.offline.init_notebook_mode()
这句话的作用是:用作初始化,防止notebook中无法绘制

2.基本的图像绘制

散点图
import pandas as pd
import plotly as py
import plotly.graph_objs as go
from plotly.graph_objs import *income_tax = pd.read_table('')
pyplot = py.offline.plot
trace1 = Scatter(y = income_tax['x8'], x = income_tax['y'], name = '地区生产总值和财政收入关系',mode = 'lines', line = dict(width = 2, color = 'green'))
trace2 = Scatter(y = income_tax['x3'], x = income_tax['y'], name = '社会消费品零售总额',mode = 'lines', line = dict(width = 2, color = 'blue'))
data = [trace1,trace2]
layout = go.Layout(title='财政收入变化',xaxis = dict(title = '地区生产总值'),yaxis = dict(title = '财政收入'), legend = dict(x = 1,y = 0.5,font = dict(size = 5,color = 'black')))
fig = go.Figure(data = data, layout = layout)   #将布局汇总在一起
pyplot(data)
柱状图
import pandas as pd
import plotly as py
import plotly.graph_objs as go
from plotly.graph_objs import *pyplot = py.offline.plot
Prod_Trade = pd.read_excel('')
order_Region = Prod_Trade['Region'].value_counts()
trade_basic = go.Bar(x =order_Region.index.tolist(), y = order_Region.values_tolist(),marker = dict(color = ['red','blue','green','darkgrey','darkblue','orange']),opacity = 0.39)      #opacity表示透明度
layout = go.Layout(title = '不同地区的订单数量',xaxis = dict(title = '地区'))
figure_basic = go.Figure(data = [trade_basic], layout = layout)
pyplot(figure_basic)
并列柱状图
import pandas as pd
import plotly as py
import plotly.graph_objs as go
from plotly.graph_objs import *pyplot = py.offline.plot
Industry_GDP = pd.read_excel('Industry_GDP.xlsx')
G1 = Industry_GDP[Industry_GDP['Industry_Type'] == '第一产业']
G2 = Industry_GDP[Industry_GDP['Industry_Type'] == '第二产业']
G3 = Industry_GDP[Industry_GDP['Industry_Type'] == '第三产业']trace1 = go.Bar(x = G1.Quarter, y = G1['GDP'], name = '第一产业')
trace2 = go.Bar(x = G2.Quarter, y = G2['GDP'], name = '第二产业')
trace3 = go.Bar(x = G3.Quarter, y = G3['GDP'], name = '第三产业')
trace = [trace1,trace2,trace3]
layout = go.Layout(title = '三大产业GDP',xaxis = dict(title = '季度'))
figure = go.Figure(data = trace,layout = layout)
pyplot(figure)

注:bargap表示的是柱与柱之间的距离,放在layout中

堆叠柱状图

只需要将绘制并列柱状图中的
layout = go.Layout(title = ‘三大产业GDP’,xaxis = dict(title = ‘季度’))
改成
layout = go.Layout(title = ‘三大产业GDP’,xaxis = dict(title = ‘季度’), barmode = ‘stack’)
即可stack表示堆叠

直方图
import pandas as pd
import plotly as py
import plotly.graph_objs as go
from plotly.graph_objs import *pyplot = py.offline.plot
Titanic = pd.read_csv('')
data = [go.Histogram(x = Titanic['Age'], histnorm = 'probability', marker = dict(color = 'blue'))]
pyplot(data)
饼图
import pandas as pd
import plotly as py
import plotly.graph_objs as go
from plotly.graph_objs import *pyplot = py.offline.plot
Prod_Trade = pd.read_excel('')
order_Region = Prod_Trade['Region'].value_counts()
trace = [go.Pie(labels = order_Region.index.tolist(), values = order_Region.values.tolist(),hole = 0.2, textfont = dict(size = 12,color = 'white'))]   #hole表示中间圆心的半径
layout = go.Layout(title = '不同地区的订单')
figure = go.Figure(data = trace, layout = layout)

总结

总体来说,Plotly模块的功能比较强大,一些常用的基本图形都可以用Plotly进行绘制,相较于传统的matplotlib模块,Plotly所表现出的功能,个人感觉要优于matplotlib。由于我本人还在不断的学习中,所以关于Plotly模块的一些用法和实例会在以后的博客中继续更新。
[注]:这是我第一次在CSDN上面写博客,所以写的不是很好,还请各位小伙伴和大佬多多包涵,有问题我们可以一起讨论,相互学习交流,感谢:)

代码编程
赞赏

相关文章

从微信企业邮箱登录入口收发邮件,让工作效率提升数倍
攻略:邮件搬家同一个域名操作步骤,设置邮箱搬家功能的方法
如何添加企业邮箱?企业邮箱添加成员流程分享
各企业邮箱对比,企业邮箱的作用有哪些?
常用外贸邮箱的正确选择让你事半功倍
外贸邮件群发邮箱,看看哪个更适合你的公司吧