9个非常流行的Python可视化工具包

发布时间:2024年01月11日

9263ba7ab4746e84639b4a30a4737a97.jpeg

更多Python学习内容:ipengtao.com

数据可视化是数据科学和数据分析领域中不可或缺的一部分。Python拥有丰富的可视化工具包,可以帮助大家将数据转化为图形、图表和可交互的仪表板。本文将介绍9个流行的Python可视化工具包,每个工具包都有其独特的特点和适用场景。

1. Matplotlib

Matplotlib是Python中最经典和广泛使用的绘图库之一。它提供了丰富的绘图功能,包括线图、散点图、柱状图、饼图等。Matplotlib的强大之处在于其高度可定制性,可以通过设置各种属性来控制图形的外观和样式。

import?matplotlib.pyplot?as?plt

#?创建一个简单的折线图
x?=?[1,?2,?3,?4,?5]
y?=?[10,?15,?7,?12,?9]

plt.plot(x,?y)
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')
plt.title('折线图示例')
plt.show()

2. Seaborn

Seaborn是基于Matplotlib的Python数据可视化库,它提供了更高级的接口和内置的主题和颜色选项。Seaborn适用于绘制统计数据的图形,可以轻松创建热图、箱线图、小提琴图等。

import?seaborn?as?sns

#?创建一个箱线图
data?=?sns.load_dataset("tips")
sns.boxplot(x="day",?y="total_bill",?data=data)
plt.xlabel('日期')
plt.ylabel('总账单')
plt.title('箱线图示例')
plt.show()

3. Plotly

Plotly是一个交互式可视化工具,可以生成交互式图表和仪表板。它支持多种图表类型,包括散点图、条形图、3D图等。Plotly的可视化可以在Web应用程序中嵌入和共享。

import?plotly.express?as?px

#?创建一个交互式散点图
df?=?px.data.iris()
fig?=?px.scatter(df,?x="sepal_width",?y="sepal_length",?color="species")
fig.update_layout(title='交互式散点图示例')
fig.show()

4. Bokeh

Bokeh是另一个交互式可视化库,专注于大数据和实时数据的可视化。它可以生成高度可交互的图表,支持互动工具、联动和可嵌入性。

from?bokeh.plotting?import?figure,?output_file,?show

#?创建一个Bokeh图表
output_file("bokeh_example.html")
p?=?figure(title='Bokeh散点图示例')
p.circle([1,?2,?3,?4,?5],?[10,?15,?7,?12,?9],?size=10)
show(p)

5. Altair

Altair是一个基于Vega-Lite的Python可视化库,它以简单的语法生成交互式图表。Altair的优点在于其简洁的API和易于使用的界面。

import?altair?as?alt
import?pandas?as?pd

#?创建一个交互式散点图
df?=?pd.DataFrame({'x':?[1,?2,?3,?4,?5],?'y':?[10,?15,?7,?12,?9]})
alt.Chart(df).mark_point().encode(x='x',?y='y').interactive()

6. Plotnine

Plotnine是Python中的一个ggplot2风格的绘图库,它使用了Grammar of Graphics的理念。它能够轻松创建具有复杂层次结构的图形。

from?plotnine?import?ggplot,?aes,?geom_point

#?创建一个ggplot2风格的散点图
df?=?pd.DataFrame({'x':?[1,?2,?3,?4,?5],?'y':?[10,?15,?7,?12,?9]})
ggplot(df,?aes(x='x',?y='y'))?+?geom_point()?+?\
????labs(title='ggplot2风格散点图示例')

7. Holoviews

Holoviews是一个用于构建复杂可视化的Python库,它允许用户将数据转换为可视化对象。Holoviews可以轻松创建面向大数据集的可视化。

import?holoviews?as?hv
import?numpy?as?np

#?创建一个动态可视化对象
x?=?np.linspace(0,?2?*?np.pi,?400)
y?=?np.sin(x)
curve?=?hv.Curve((x,?y))
curve.opts(title='Holoviews动态可视化示例')

8. Dash

Dash是一个用于构建交互式Web应用程序的Python框架,它结合了Plotly的可视化能力。Dash可以用于构建数据仪表板、可视化报告和数据产品。

import?dash
import?dash_core_components?as?dcc
import?dash_html_components?as?html

#?创建一个Dash?Web应用程序
app?=?dash.Dash(__name__)

app.layout?=?html.Div([
????dcc.Graph(
????????id='example-graph',
????????figure={
????????????'data':?[
????????????????{'x':?[1,?2,?3,?4,?5],?'y':?[10,?15,?7,?12,?9],?'type':?'line',?'name':?'线图'},
????????????],
????????????'layout':?{
????????????????'title':?'Dash示例图表'
????????????}
????????}
????)
])

if?__name__?==?'__main__':
????app.run_server(debug=True)

9. Folium

Folium是一个用于创建交互式地图可视化的库,它构建在Leaflet库的基础之上,使您能够轻松地在地图上绘制数据点、多边形、热力图等地理信息数据。这对于地理空间数据分析和展示非常有用,例如在地图上标记地点、可视化地理分布等。

import?folium

#?创建一个地图对象,指定中心坐标和初始缩放级别
m?=?folium.Map(location=[37.7749,?-122.4194],?zoom_start=10)

#?在地图上添加一个标记点
folium.Marker(
????location=[37.7749,?-122.4194],
????popup='San?Francisco',
????icon=folium.Icon(icon='cloud')
).add_to(m)

#?在地图上添加一个圆形区域
folium.Circle(
????location=[37.7749,?-122.4194],
????radius=5000,
????color='crimson',
????fill=True,
????fill_color='crimson'
).add_to(m)

#?在地图上添加一个热力图层
heat_data?=?[[37.7749,?-122.4194,?1.0]]
folium.plugins.HeatMap(heat_data).add_to(m)

#?保存地图为HTML文件
m.save('map.html')

#?在浏览器中打开HTML文件以查看交互式地图
import?webbrowser
webbrowser.open('map.html')

这9个Python可视化工具包都具有不同的特点和适用场景。根据需求和项目要求,选择最合适的工具包来创建令人印象深刻的数据可视化。无论是进行数据分析、报告制作还是构建交互式数据仪表板,Python都有合适的工具包可供选择。希望本文可以帮助大家了解这些工具包的基本特点,并开始在Python中进行数据可视化的探索。

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

更多Python学习内容:ipengtao.com

干货笔记整理

? 100个爬虫常见问题.pdf ,太全了!

Python 自动化运维 100个常见问题.pdf

Python Web 开发常见的100个问题.pdf

124个Python案例,完整源代码!

PYTHON 3.10中文版官方文档

耗时三个月整理的《Python之路2.0.pdf》开放下载

最经典的编程教材《Think Python》开源中文版.PDF下载

eabe3dd52e8b2a3adff2d34acd5d1ea6.png

点击“阅读原文”,获取更多学习内容

文章来源:https://blog.csdn.net/wuShiJingZuo/article/details/135516664
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。