别人做的Python图表能交互?Plotly入门教程 折线图柱状图一步到位

B站影视 港台电影 2025-08-06 15:04 1

摘要:在数据可视化的领域中,Python的Plotly库犹如一颗璀璨的明星,它能够将枯燥的数据转化为直观、生动且交互性强的图表,让数据说话,帮助我们更好地理解数据背后的故事。今天,就让我们一起深入探索如何使用Plotly绘制折线图和柱状图,无论你是数据分析的新手,还

在数据可视化的领域中,Python的Plotly库犹如一颗璀璨的明星,它能够将枯燥的数据转化为直观、生动且交互性强的图表,让数据说话,帮助我们更好地理解数据背后的故事。今天,就让我们一起深入探索如何使用Plotly绘制折线图和柱状图,无论你是数据分析的新手,还是寻求提升可视化技能的进阶者,都能在这里收获满满!

Plotly是一款强大的开源数据可视化库,它支持多种图表类型,包括折线图、柱状图、散点图、饼图、地图等。与其他可视化库相比,Plotly最大的优势在于其出色的交互性,用户可以通过鼠标悬停、缩放、平移等操作,深入探索数据的细节。此外,Plotly生成的图表不仅可以在Jupyter Notebook中直接展示,还能轻松导出为HTML、PNG、PDF等格式,方便在网页、报告中使用。

如果你还没有安装Plotly库,可以使用pip命令进行安装:

pip install plotly

安装完成后,还可以安装Plotly Express,它是一个高级API,提供了更简洁的绘图方法,安装命令如下:

pip install plotly-express

(一)单条折线图

假设我们有一家公司过去10个月的销售额数据,想要直观地展示销售额随时间的变化趋势,就可以使用折线图。下面是具体的实现代码:

import plotly.express as px

import pandas as pd

# 构造数据

months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']

sales = [100, 120, 150, 130, 180, 200, 220, 250, 230, 280]

data = {'Month': months, 'Sales': sales}

df = pd.DataFrame(data)

# 绘制折线图

fig = px.line(df, x='Month', y='Sales', title='Company Monthly Sales')

fig.show

在这段代码中,我们首先导入了必要的库plotly.express和pandas。然后,构造了包含月份和销售额的数据,并将其转换为DataFrame格式。接着,使用px.line函数绘制折线图,其中x参数指定为月份列,y参数指定为销售额列,title参数设置图表的标题。最后,调用fig.show方法显示图表。

(二)多条折线图

如果我们想要同时比较多家公司的销售额,就可以绘制多条折线图。假设我们还有另一家公司的数据,代码如下:

import plotly.express as px

import pandas as pd

# 构造数据

months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']

sales_company1 = [100, 120, 150, 130, 180, 200, 220, 250, 230, 280]

sales_company2 = [80, 100, 130, 110, 160, 180, 200, 220, 200, 250]

data = {'Month': months, 'Company1': sales_company1, 'Company2': sales_company2}

df = pd.DataFrame(data)

# 绘制折线图

fig = px.line(df, x='Month', y=['Company1', 'Company2'], title='Monthly Sales Comparison')

fig.show

这里,我们在px.line函数的y参数中传入了一个包含两家公司销售额列名的列表,这样就可以在同一图表中绘制出两条折线,方便对比。

(三)自定义折线图样式

Plotly提供了丰富的参数,让我们可以自由地自定义折线图的样式,使其更加美观和专业。例如,我们可以修改线条颜色、标记点样式、添加网格线等。以下是一个示例:

import plotly.express as px

import pandas as pd

# 构造数据

months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']

sales = [100, 120, 150, 130, 180, 200, 220, 250, 230, 280]

data = {'Month': months, 'Sales': sales}

df = pd.DataFrame(data)

# 绘制折线图并自定义样式

fig = px.line(df, x='Month', y='Sales', title='Company Monthly Sales')

fig.update_traces(line=dict(color='blue', width=3, dash='dashdot'),

marker=dict(size=8, color='red', symbol='circle'))

fig.update_layout(

xaxis=dict(

showgrid=True,

gridwidth=1,

gridcolor='lightgray'

),

yaxis=dict(

showgrid=True,

gridwidth=1,

)

)

fig.show

在这段代码中,update_traces方法用于修改折线和标记点的样式,update_layout方法用于设置图表的布局,包括x轴和y轴的网格线样式。

(一)基本柱状图

柱状图是一种常用的图表类型,用于比较不同类别之间的数据大小。例如,我们想要展示不同水果的销量,代码如下:

import plotly.graph_objects as go

import pandas as pd

# 构造数据

fruits = ['Apple', 'Banana', 'Orange', 'Mango', 'Grapes']

sales = [50, 30, 40, 20, 15]

data = {'Fruit': fruits, 'Sales': sales}

df = pd.DataFrame(data)

# 绘制柱状图

fig = go.Figure(data=[go.Bar(x=df['Fruit'], y=df['Sales'])])

fig.update_layout(title_text='Fruit Sales')

fig.show

这里,我们使用plotly.graph_objects中的Bar类来创建柱状图,x参数指定水果类别,y参数指定销量。通过update_layout方法设置图表标题。

(二)分组柱状图

当我们需要对比多组数据时,可以使用分组柱状图。假设我们有不同地区不同水果的销量数据,代码如下:

import plotly.graph_objects as go

import pandas as pd

# 构造数据

fruits = ['Apple', 'Banana', 'Orange', 'Mango', 'Grapes']

sales_region1 = [50, 30, 40, 20, 15]

sales_region2 = [40, 25, 35, 15, 10]

data = {'Fruit': fruits, 'Region1': sales_region1, 'Region2': sales_region2}

df = pd.DataFrame(data)

# 绘制分组柱状图

fig = go.Figure

fig.add_trace(go.Bar(x=df['Fruit'], y=df['Region1'], name='Region1'))

fig.add_trace(go.Bar(x=df['Fruit'], y=df['Region2'], name='Region2'))

fig.update_layout(

barmode='group',

title_text='Fruit Sales by Region'

)

fig.show

在这段代码中,我们使用add_trace方法分别添加了两个地区的柱状图数据,通过设置barmode='group'来实现分组展示。

(三)堆积柱状图

堆积柱状图可以展示不同类别数据在总量中的占比情况。例如,我们想要展示不同部门在总销售额中的贡献,代码如下:

import plotly.graph_objects as go

import pandas as pd

# 构造数据

departments = ['Sales', 'Marketing', 'R&D', 'Finance']

sales_department1 = [30, 20, 15, 5]

sales_department2 = [25, 18, 12, 5]

data = {'Department': departments, 'Sales1': sales_department1, 'Sales2': sales_department2}

df = pd.DataFrame(data)

# 绘制堆积柱状图

fig = go.Figure

fig.add_trace(go.Bar(x=df['Department'], y=df['Sales1'], name='Sales1'))

fig.add_trace(go.Bar(x=df['Department'], y=df['Sales2'], name='Sales2'))

fig.update_layout(

barmode='stack',

title_text='Sales Contribution by Department'

)

fig.show

这里,同样使用add_trace方法添加数据,通过设置barmode='stack'来实现堆积效果。

通过以上的教程,相信你已经掌握了使用Plotly绘制折线图和柱状图的基本技巧。从简单的数据准备,到图表的创建和样式自定义,Plotly都提供了简洁而强大的接口,让数据可视化变得轻松有趣。

数据可视化是数据分析的重要环节,它能够帮助我们更直观地理解数据,发现数据中的规律和趋势。而Plotly作为一款优秀的可视化库,不仅能够满足我们日常的数据可视化需求,还能通过其丰富的交互功能,为我们带来更深入的数据探索体验。

如果你想要进一步提升自己的数据可视化技能,可以继续探索Plotly的更多功能,如3D图表、地图可视化、动画图表等。同时,也可以结合其他Python库,如Pandas、Numpy等,进行更复杂的数据处理和分析。

希望这篇教程能够对你有所帮助,如果你在学习过程中有任何问题或建议,欢迎在评论区留言。记得点赞、关注我,获取更多有趣的数据分析和可视化内容!让我们一起用数据说话,用图表展现数据的魅力!

来源:绿叶菜

相关推荐