Plotly可视化介绍

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时计算 Flink 版,5000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: Plotly可视化介绍

Plotly是一个开源、交互式和基于浏览器的Python图形库,可以创建能在仪表板或网站中使用的交互式图表(可以将它们保存为html文件或静态图像)。Plotly基于plotly.js,它是一个高级图表库,与Bokeh一样,Plotly的强项是制作交互式图 ,有超过30种图表类型,提供了一些在大多数库中没有的图表,如等高线图、树状图、科学图表、统计图表、3D图表、金融图表等。Plotly有以下几个优点:

  • 支持多种编程语言,如Python, R, Julia和JS,可以满足不同用户的需求和偏好。
  • 提供了丰富而灵活图形类型和样式,可以制作高质量交互式图表。
  • 可以轻松地将生成的图形嵌入到网页上,或者保存为静态文件或动画文件,方便分享和展示。
  • 可以帮助用户进行高级的数据分析和机器学习,提供了Dash这个强大的应用框架。

Plotly主要的绘制方式:

  • Plotly Express:受Seaborn和ggplot2的启发,它专门设计为具有简洁,一致且易于学习的API。只需一次导入,就可以在函数调用中创建丰富的交互式绘图,包括地图、动画和趋势线等。
  • Graph Objects:提供了更多的自定义选项和灵活性。您可以使用Graph Objects来构建复杂的布局和样式,并添加更多的交互功能。下面我们来看一些Plotly绘制不同类型图形的案例,并给出相应的Python代码和注释。

散点图

散点图是一种常用的数据可视化方式,可以显示两个或多个变量之间的关系。Plotly提供了一个简单的函数scatter来创建散点图。

# 导入plotly库
import plotly.express as px
# 创建一个数据集
df = px.data.iris()
# 使用scatter函数绘制散点图
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species")
# 显示图形
fig.show()

# 使用Plotly Express绘制散点图
import plotly.express as px # 导入plotly.express模块
df = px.data.iris() # 加载内置数据集
fig = px.scatter(df, x="sepal_width", y="sepal_length", # 设置x轴为花萼宽度,y轴为花萼长度
                 color="species", size="petal_length", # 设置颜色为品种,大小为花瓣长度
                 hover_data=['petal_width']) # 设置鼠标悬停时显示花瓣宽度
fig.show() # 显示图片
# 使用Graph Objects绘制散点图
import plotly.graph_objects as go # 导入plotly.graph_objects模块
import numpy as np # 导入numpy模块
t = np.linspace(0, 10, 30) # 0-10之间随机生成30个数字
x, y, z = np.cos(t), np.sin(t), t # 设置3个变量
fig = go.Figure(data=[go.Scatter3d( # 创建Figure对象,并添加Scatter3d对象作为数据源
    x=x, y=y, z=z,
    mode='markers', # 设置模式为标记点
    marker=dict( 
        size=12,
        color=z,
        colorscale='Viridis', 
        opacity=0.8) # 设置标记点的大小、颜色、颜色范围和透明度等属性
)])
fig.update_layout(title='3D Scatter Plot') # 更新布局设置标题
fig.show() # 显示图片

柱状图

柱状图是一种常用的数据可视化方式,可以用来比较不同类别或分组之间的数值大小。

# 使用Plotly Express绘制柱状图
import plotly.express as px # 导入plotly.express模块
df = px.data.gapminder() # 加载内置数据集
fig = px.bar(df, x="continent", y="pop", color="continent", # 设置x轴为大洲名称,y轴为人口数量,颜色为大洲名称
             title="Population of Continent", # 设置标题
             labels={"pop":"Population"}, # 设置y轴标签
             hover_data=["country"], # 设置鼠标悬停时显示国家名称
             height=400) # 设置高度为400像素
fig.show() # 显示图片
# 使用Graph Objects绘制柱状图
import plotly.graph_objects as go # 导入plotly.graph_objects模块
animals= ['giraffes', 'orangutans', 'monkeys'] # 定义类别列表
fig = go.Figure(data=[go.Bar( # 创建Figure对象,并添加Bar对象作为数据源
    name='SF Zoo', # 设置第一组数据名称
    x=animals, y=[20, 14, 23], # 设置x轴和y轴数据
    text=[20, 14, 23], textposition='auto'), # 设置文本标签和位置
    go.Bar(
    name='LA Zoo', 
    x=animals, y=[12, 18, 29],
    text=[12, 18, 29], textposition='auto')
])
fig.update_layout(title='Number of Animals in LA and SF Zoo', # 更新布局设置标题
                  xaxis_title='Animals', yaxis_title='Count') # 更新x轴和y轴标题
fig.show() # 显示图片

饼图

饼图是一种常用的数据可视化方式,用来展示不同类别在总体中的占比。

# 使用Plotly Express绘制饼图
import plotly.express as px # 导入plotly.express模块
df = px.data.gapminder().query("year == 2007") # 加载内置数据集,并筛选出2007年的数据
fig = px.pie(df, values='pop', names='continent', title='Population of Continent') # 创建饼图,设置数值为人口数量,名称为大洲名称,标题为人口分布情况
fig.show() # 显示图片
# 使用Graph Objects绘制饼图
import plotly.graph_objects as go  # 导入plotly.graph_objects模块
labels = ['Oxygen','Hydrogen','Carbon_Dioxide','Nitrogen']  # 定义类别列表 
values = [4500, 2500, 1053, 500]   # 定义数值列表 
fig = go.Figure(data=[go.Pie(labels=labels, values=values)])   # 创建Figure对象,并添加Pie对象作为数据源 
fig.update_layout(title='Composition of Air')  # // 更新布局设置标题 
fig.show()  # // 显示图片

等高线图

等高线图是一种常用的数据可视化方式,可以用来展示三维空间中函数值在二维平面上的分布情况。我们可以使用Plotly Express或Graph Objects来绘制等高线图。

# 使用Plotly Express绘制等高线图
import plotly.express as px # 导入plotly.express模块
df = px.data.iris() # 加载内置数据集
fig = px.density_contour(df, x="sepal_width", y="sepal_length", color="species") # 创建等高线图,设置x轴为花萼宽度,y轴为花萼长度,颜色为品种
fig.show() # 显示图片
# 使用Graph Objects绘制等高线图
import plotly.graph_objects as go # 导入plotly.graph_objects模块
import numpy as np # 导入numpy模块
x = np.linspace(-5, 5, 50) # 在-5到5之间生成50个数字
y = np.linspace(-5, 5, 50) 
X,Y = np.meshgrid(x,y) # 创建网格点矩阵
Z = X**2 + Y**2 # 定义函数值
fig = go.Figure(data=[go.Contour( # 创建Figure对象,并添加Contour对象作为数据源
    z=Z,
    x=x,
    y=y,
    contours=dict(
        coloring ='heatmap', 
        showlabels = True,
        labelfont = dict(size = 12,color = 'white') 
    ) # 设置等高线的颜色、标签和字体等属性
)])
fig.update_layout(title='Contour Plot of Z=X^2+Y^2') #// 更新布局设置标题 
fig.show() #// 显示图片

Plotly是一个强大而灵活的Python图形库,可以创建各种类型和风格的交互式图表。Plotly可以帮助我们更好地探索和呈现数据,提升我们的数据分析能力和水平。还有许多图形下期再继续介绍,感兴趣的读者可以去官网或相关论坛继续学习。

目录
相关文章
|
16天前
|
数据可视化 数据挖掘 UED
Plotly交互式数据可视化
【10月更文挑战第12天】本文介绍了如何使用 Plotly 实现交互式数据可视化,涵盖从安装 Plotly 到数据准备、图表创建、添加交互功能、导出图表及自定义图表样式的全过程。通过具体示例,展示了如何创建和优化交互式折线图,提升数据分析的效率和趣味性。
119 60
|
2月前
|
数据可视化 Python
Python中的数据可视化:使用Matplotlib绘制图表
【9月更文挑战第11天】在这篇文章中,我们将探索如何使用Python的Matplotlib库来创建各种数据可视化。我们将从基本的折线图开始,然后逐步介绍如何添加更多的功能和样式,以使您的图表更具吸引力和信息量。无论您是数据科学家、分析师还是任何需要将数据转化为视觉形式的专业人士,这篇文章都将为您提供一个坚实的起点。让我们一起潜入数据的海洋,用视觉的力量揭示其背后的故事。
53 16
|
2月前
|
数据可视化 Python
可视化 图形 matplotlib
可视化 图形 matplotlib
|
机器学习/深度学习 数据可视化 JavaScript
Plotly可视化介绍
Plotly可视化介绍
183 0
|
4月前
|
机器学习/深度学习 数据可视化 搜索推荐
Matplotlib数据可视化图表
【7月更文挑战第11天】Python的Matplotlib库是数据可视化的首选工具,支持创建各种图表,如折线图、柱状图、散点图、饼图、箱线图、热图等。安装Matplotlib可使用`conda`或`pip`。通过简单代码示例展示了如何绘制这些图表,包括自定义样式、动态更新及保存图表为图片文件。数据可视化对于理解和传达数据洞察至关重要。
53 3
|
5月前
|
数据可视化 Python
Seaborn 可视化(二)
Seaborn教程展示了如何用`jointplot`创建蜂巢图,以及使用`matplotlib`的`hexbin`函数绘制2D核密度图。此外,它还介绍了2D核密度图,强调其在展示两个变量联合分布上的作用。条形图、箱线图和小提琴图也被讨论,其中箱线图揭示了数据的统计特性,而小提琴图结合了箱线图和核密度图的信息。`pairplot`函数用于可视化数据集中所有变量之间的两两关系。每种图表类型都配有示例图像。
|
5月前
|
数据可视化
Seaborn 可视化(三)
Seaborn的pairplot用于多变量数据可视化,但上半部分与下半部分重复。可通过PairGrid手动定制,如示例所示,用regplot和kdeplot分别绘制对角线以上和以下的图,histplot画对角线。hue参数增强可视化,比如在violinplot和lmplot中按性别着色,展示不同类别。还能通过点的大小和形状(如markers参数)添加信息。Seaborn提供darkgrid等5种样式,用sns.set_style切换。
|
5月前
|
数据可视化 数据挖掘 API
Seaborn 可视化(一)
Seaborn是Python的一个基于matplotlib的统计图形库,提供交互式界面,便于创建吸引人的统计图表。它与Pandas集成良好,支持直接使用DataFrame数据进行绘图。Seaborn能绘制直方图(distplot)、密度图(核密度估计)、条形图(计数图)以及散点图(regplot、lmplot、jointplot),适用于单变量和双变量数据分析,如展示分布、关系和趋势。例如,`sns.distplot()`用于直方图,`sns.lmplot()`和`sns.jointplot()`则用于绘制散点图并可添加回归线。
|
6月前
|
数据可视化 定位技术 Python
Matplotlib与其他可视化库的对比与选择
【4月更文挑战第17天】本文对比了Python中的四个数据可视化库:Matplotlib(基础且高度定制)、Seaborn(基于Matplotlib,提供美观统计图表)、Plotly(交互式,支持3D和地图)和Bokeh(用于Web的交互式图表)。选择取决于灵活性、美观性、交互性和学习成本。根据具体需求,如快速生成图表或创建交互式Web可视化,用户可挑选最适合的库。
|
6月前
|
存储 数据可视化 数据挖掘
利用Matplotlib实现地图可视化
【4月更文挑战第17天】使用Matplotlib结合GeoPandas和Basemap在Python中实现地图可视化。首先安装Matplotlib、GeoPandas和Basemap库。读取GeoJSON或Shapefile格式的地理数据,然后使用Basemap创建地图底图,绘制海岸线、国家边界和大陆湖泊。将GeoDataFrame数据转换后叠加到地图上,自定义地图样式和添加图例。利用颜色映射展示与地理位置相关的数值数据,创建颜色条。此外,可通过Folium实现交互式地图。通过学习和实践,提升地图可视化的技能。