6个顶级Python可视化库!

6个优秀可视化Python库 对使用哪个可视化工具感到困惑? 我为您分解了每个库的优缺点 动机 如果您刚开始使用Python可视化,可能会不知所措的库和示例数量众多: Matplotlib Seaborn Plotly Bokeh Altair Folium 如果您有一个等待可视化的DataFrame,应该选择哪一个? 在某些情况下,某些库可能比其他库更好。 本文将展示每种方法的优缺点。 到本文结尾,您应该能够区分每个库的不同功能,并可以更轻松地选择优秀库。 我们将通过使用样本数据集并使用每... 阅读详情

如果你是Python可视化的新手,一些流行的可视化库包括Matplotlib、Seaborn、Plotly、Bokeh、Altair和Folium,以及大量的库和例子可能会让你感到不知所措。

当可视化一个DataFrame时,选择使用哪个可视化库确实是一个头疼的事情。

这篇文章云朵君将和大家一起学习每个库的优点和缺点。到最后,对它们的不同特点有更好的了解,在合适的时候更容易选择合适的库。

将通过专注于几个具体的属性来评价一个可视化工具的优缺点:

互动性

你想要交互式可视化吗?像Altair、Bokeh和Plotly这样的库允许你创建交互式图表,用户可以探索和互动。

另外,一些库(如Matplotlib)将可视化渲染成静态图像,使其适合在论文、幻灯片或演示中解释概念。

语法和灵活性

不同库的语法有什么不同?低级别的库,如Matplotlib,提供了广泛的灵活性,可以完成几乎任何事情。然而,API也是很复杂的。

像Altair这样的声明式库简化了数据到可视化的映射,提供了一个更直观的语法。

数据类型和视觉化

是否在处理专门的用例,如地理图或大数据集?考虑一个特定的库是否支持绘图类型或有效处理大型数据集。

Matplotlib

Matplotlib可能是最常见的用于可视化数据的Python库。几乎所有对数据科学感兴趣的人都可能至少使用过一次Matplotlib。

优点

易于解释的数据属性

在分析数据时,快速了解数据分布情况往往非常有用的。

例如,如果你想检查拥有最多粉丝的前100名用户的分布情况,通常Matplotlib就足够了。

import matplotlib.pyplot as plt  
  
top_followers = new_profile.sort_values(by="followers", axis=0, ascending=False)[:100]  
  
fig = plt.figure()  
  
plt.bar(top_followers.user_name, top_followers.followers)  
plt.show()  

尽管Matplotlib的X轴表示方法并不理想,但该图可以让人清楚地了解数据的分布。

多样性

Matplotlib的功能非常全面,能够生成各种类型的图形。Matplotlib的网站[2]提供了全面的文档和各种图形的图库,使得它很容易找到几乎任何类型的绘图的教程。

fig = plt.figure()  
  
plt.text(  
    0.6,  
    0.7,  
    "learning",  
    size=40,  
    rotation=20.0,  
    ha="center",  
    va="center",  
    bbox=dict(  
        boxstyle="round",  
        ec=(1.0, 0.5, 0.5),  
        fc=(1.0, 0.8, 0.8),  
    ),  
)  
  
plt.text(  
    0.55,  
    0.6,  
    "machine",  
    size=40,  
    rotation=-25.0,  
    ha="right",  
    va="top",  
    bbox=dict(  
        boxstyle="square",  
        ec=(1.0, 0.5, 0.5),  
        fc=(1.0, 0.8, 0.8),  
    ),  
)  
  
plt.show()  

缺点

虽然Matplotlib几乎可以绘制任何东西,但生成非基本的图或为审美目的调整图可能很复杂。

如果你打算向他人展示你的数据,定制X轴、Y轴和其他绘图元素可能需要大量的努力。这是由于Matplotlib的低级接口造成的。

num_features = new_profile.select_dtypes("int64")  
correlation = num_features.corr()  
  
fig, ax = plt.subplots()  
im = plt.imshow(correlation)  
  
ax.set_xticklabels(correlation.columns)  
ax.set_yticklabels(correlation.columns)  
  
plt.setp(ax.get_xticklabels(),   
        rotation=45,   
        ha="right",   
        rotation_mode="anchor")  
plt.show()  

经验之谈:Matplotlib 能够制作任何绘图,但与其他库相比,创建复杂的绘图往往需要更多的代码。

Seaborn

Seaborn是一个建立在Matplotlib之上的Python数据可视化库。它提供了一个更高层次的界面,简化了创建具有视觉吸引力的图的过程。

优点

减少的代码

Seaborn提供了一个更高层次的接口来生成与Matplotlib类似的图。这意味着你可以用更少的代码和更漂亮的视觉设计来实现类似的可视化。

例如,使用与之前相同的数据,我们可以创建一个热图,而无需明确设置x和y标签:

correlation = new_profile.corr()  
  
sns.heatmap(correlation, annot=True)  

这使得热图在视觉上更有吸引力,而不需要额外的配置。

改善普通图表的美感

Seaborn是常见绘图类型的热门选择,如柱状图、箱形图、计数图和直方图。Seaborn不仅需要较少的代码来生成这些图,而且它们还具有增强的视觉美感。

在下面的例子中,由于Seaborn的默认设置,计数图在视觉上显得更加吸引人:

sns.set(style="darkgrid")  
titanic = sns.load_dataset("titanic")  
ax = sns.countplot(x="class", data=titanic)  

缺点

Seaborn尽管有其优势,但并不像Matplotlib那样拥有广泛的绘图类型集合。虽然它在流行的绘图类型方面表现出色,但对于更专业或定制的绘图,它可能无法提供同样广泛的选项。

经验之谈:Seaborn 是Matplotlib的一个高级版本。尽管它没有像Matplotlib那样广泛的集合,但Seaborn可以用更少的代码使流行的绘图,如柱状图、盒状图、热图等看起来更漂亮。

Plotly

Plotly[4]图形库提供了一种毫不费力的方式来创建交互式和高质量的图形。它提供了一系列类似于Matplotlib和Seaborn的图表类型,包括线图、散点图、面积图、条形图等等。

优点

与R相似

如果你熟悉在R中创建绘图,并在使用Python时怀念它的功能,Plotly是一个很好的选择。它允许你用Python实现同样水平的高质量绘图。

Plotly Express尤其突出,因为它只用一行Python代码就能创建令人印象深刻的图表。比如说:

import plotly.express as px  
  fig = px.scatter(  
    new_profile[:100],  
    x="followers",  
    y="total_stars",  
    color="forks",  
    size="contribution",  
)  
fig.show()  
交互式图表创建

Plotly擅长创建交互式图表,这不仅增强了视觉吸引力,而且使观众能够更详细地探索数据。

让我们考虑一下前面的用Matplotlib创建的条形图例子。下面是如何用Plotly实现的:

top_followers = new_profile.sort_values(by="followers", axis=0, ascending=False)[:100]  
  
fig = px.bar(  
    top_followers,  
    x="user_name",  
    y="followers",  
)  
  
fig.show()  

通过类似的代码,Plotly可以生成一个交互式的图表,用户可以将鼠标悬停在每个条形图上,查看相应的用户和关注者数量。这种互动性使你的可视化的消费者有能力自己去探索数据。

复杂地块中的简单性

Plotly简化了复杂图的创建,这在其他库中可能是个挑战。

例如,如果我们想在地图上可视化GitHub用户的位置,我们可以获得他们的经纬度,并据此绘制:

location_df = pd.read_csv(  
    "https://gist.githubusercontent.com/khuyentran1401/ce61bbad3bc636bf2548d70d197a0e3f/raw/ab1b1a832c6f3e01590a16231ba25ca5a3d761f3/location_df.csv",  
    index_col=0,  
)  
  
m = px.scatter_geo(  
    location_df,  
    lat="latitude",  
    lon="longitude",  
    color="total_stars",  
    size="forks",  
    hover_data=["user_name", "followers"],  
    title="Locations of Top Users",  
)  
  
m.show()  

只需几行代码,Plotly就能在地图上漂亮地表示用户的位置。气泡的颜色代表分叉的数量,而大小则与星星的总数相对应。

经验之谈:Plotly 是一个很好的选择,可以用最少的代码来创建交互式和出版质量的图表。它提供了广泛的可视化功能,并简化了创建复杂图表的过程。

Altair

Altair[5]是一个强大的Python声明式统计可视化库,基于Vega-Lite。它在创建需要大量统计转换的图表时大放异彩。

优点

简单的可视化语法

Altair利用直观的语法来创建可视化。你只需要指定数据列和编码通道之间的联系,其余的绘图工作都是自动处理的。这种简单性使得信息的可视化变得快速而直观。

例如,使用泰坦尼克号的数据集来计算每个班级的人数:

import seaborn as sns  
import altair as alt  
  
titanic = sns.load_dataset("titanic")  
  
alt.Chart(titanic).mark_bar().encode(alt.X("class"), y="count()")  

Altair简洁的语法允许你专注于数据和它的关系,从而产生高效和富有表现力的可视化。

易于数据转换

Altair使其在创建图表时毫不费力地进行数据转换。

例如,如果你想在泰坦尼克号数据集中找到每个性别的平均年龄,你可以在代码本身中进行转换:

hireable = (  
    alt.Chart(titanic)  
    .mark_bar()  
    .encode(x="sex:N", y="mean_age:Q")  
    .transform_aggregate(mean_age="mean(age)", groupby=["sex"])  
)  
  
hireable  

Altair的transform_aggregate()函数使你能够在飞行中汇总数据,并在你的可视化中使用这些结果。

你也可以使用:N 或:Q符号指定数据类型,如名义(没有任何顺序的分类数据)或定量(数值的衡量)。

查看数据转换的完整列表[6]。

链接图表

Altair提供了令人印象深刻的将多个地块连接在一起的能力。你可以根据用户的互动,使用选择来过滤所附图块的内容。

例如,在散点图上直观地显示所选区间内每个阶层的人数:

brush = alt.selection(type="interval")  
  
points = (  
    alt.Chart(titanic)  
    .mark_point()  
    .encode(  
        x="age:Q",  
        y="fare:Q",  
        color=alt.condition(brush, "class:N", alt.value("lightgray")),  
    )  
    .add_selection(brush)  
)  
  
bars = (  
    alt.Chart(titanic)  
    .mark_bar()  
    .encode(y="class:N", color="class:N", x="count(class):Q")  
    .transform_filter(brush)  
)  
  
points & bars  

当你在散点图中选择一个区间时,柱状图会动态更新以反映过滤后的数据。Altair连接图的能力允许高度互动的可视化和即时计算,不需要运行Python服务器。

缺点

Altair的简单图表,如柱状图,可能看起来不像Seaborn或Plotly等库中的图表那样有风格,除非你指定自定义风格。

Altair建议在处理超过5000个样本的数据集时,在可视化之前对数据进行汇总。处理更大的数据集可能需要额外的步骤来管理数据大小和复杂性。

经验之谈:Altair 是创建复杂统计图表的绝佳选择。虽然它可能缺乏一些默认的样式选项,并且在处理大型数据集时有局限性,但Altair的简单性、数据转换能力和链接图使其成为统计可视化的强大工具。

Bokeh

Bokeh是一个高度灵活的交互式可视化库,专为网络浏览器设计。

优点

Matplotlib的交互式版本

在交互式可视化方面,Bokeh作为与Matplotlib最相似的库脱颖而出。Matplotlib是一个低级别的可视化库,而Bokeh同时提供了高级和低级别的接口。使用Bokeh,你可以创建类似于Matplotlib的复杂图,但代码行数更少,分辨率更高。

例如,Matplotlib的圆形图…

import matplotlib.pyplot as plt  
 fig, ax = plt.subplots()  
  
x = [1, 2, 3, 4, 5]  
y = [2, 5, 8, 2, 7]  
  
for x, y in zip(x, y):  
    ax.add_patch(  
        plt.Circle((x, y), 0.5, edgecolor="#f03b20", facecolor="#9ebcda", alpha=0.8)  
    )  
  
  
# Use adjustable='box-forced' to make the plot area square-shaped as well.  
ax.set_aspect("equal", adjustable="datalim")  
ax.set_xbound(3, 4)  
  
ax.plot()  # Causes an autoscale update.  
plt.show()  

…可以通过使用虚化技术实现更好的分辨率和更大的效用:

from bokeh.io import show, output_notebook  
from bokeh.models import Circle  
from bokeh.plotting import figure  
  
output_notebook()  
  
plot = figure(tools="tap", title="Select a circle")  
renderer = plot.circle([1, 2, 3, 4, 5], [2, 5, 8, 2, 7], size=50)  
  
selected_circle = Circle(fill_alpha=1, fill_color="firebrick", line_color=None)  
nonselected_circle = Circle(fill_alpha=0.2, fill_color="blue", line_color="firebrick")  
  
renderer.selection_glyph = selected_circle  
renderer.nonselection_glyph = nonselected_circle  
  
show(plot)  
图表之间的联系

Bokeh使建立地块之间的联系变得非常容易。应用于一个图的变化可以自动反映在另一个具有类似变量的图中。这个功能允许探索多个地块之间的关系。

例如,如果你创建了三个并排的图形,并想观察它们的关系,你可以利用链接刷:

from bokeh.layouts import gridplot  
from bokeh.models import ColumnDataSource  
  
  
source = ColumnDataSource(new_profile)  
  
TOOLS = "box_select,lasso_select,help"  
TOOLTIPS = [  
    ("user", "@user_name"),  
    ("followers", "@followers"),  
    ("following", "@following"),  
    ("forks", "@forks"),  
    ("contribution", "@contribution"),  
]  
  
s1 = figure(tooltips=TOOLTIPS, title=None, tools=TOOLS)  
s1.circle(x="followers", y="following", source=source)  
  
s2 = figure(tooltips=TOOLTIPS, title=None, tools=TOOLS)  
s2.circle(x="followers", y="forks", source=source)  
  
s3 = figure(tooltips=TOOLTIPS, title=None, tools=TOOLS)  
s3.circle(x="followers", y="contribution", source=source)  
  
p = gridplot([[s1, s2, s3]])  
show(p)  

通过利用ColumnDataSource,数据可以在绘图之间共享。因此,当一个情节发生变化时,其他情节也会相应地自动更新。

缺点

作为一个具有某种中间层次界面的库,Bokeh通常需要更多的代码来产生与Seaborn、Altair或Plotly相同的图。虽然Bokeh需要的代码比Matplotlib少,但与其他库相比,它可能需要额外的代码行来实现类似的质量输出。

例如,使用泰坦尼克号数据创建同样的计数图,除了需要提前转换数据外,如果我们想让图表看起来漂亮,还需要设置条形图的宽度和颜色。

如果我们不为条形图增加宽度,图表会是这样的:

from bokeh.transform import factor_cmap  
from bokeh.palettes import Spectral6  
  
titanic_groupby = titanic.groupby("class")["survived"].sum().reset_index()  
  
p = figure(x_range=list(titanic_groupby["class"]))  
p.vbar(  
    x="class",  
    top="survived",  
    source=titanic_groupby,  
    fill_color=factor_cmap(  
        "class", palette=Spectral6, factors=list(titanic_groupby["class"])  
    ),  
)  
show(p)  
  
from bokeh.transform import factor_cmap  
from bokeh.palettes import Spectral6  
  
titanic_groupby = titanic.groupby("class")["survived"].sum().reset_index()  
  
p = figure(x_range=list(titanic_groupby["class"]))  
p.vbar(  
    x="class",  
    top="survived",  
    source=titanic_groupby,  
    fill_color=factor_cmap(  
        "class", palette=Spectral6, factors=list(titanic_groupby["class"])  
    ),  
)  
show(p)  

因此,我们需要手动调整尺寸以使绘图更美观:

p = figure(x_range=list(titanic_groupby["class"]))  
p.vbar(  
    x="class",  
    top="survived",  
    width=0.9,  
    source=titanic_groupby,  
    fill_color=factor_cmap(  
        "class", palette=Spectral6, factors=list(titanic_groupby["class"])  
    ),  
)  
show(p)  

经验之谈:Bokeh 的独特优势在于它能够提供一系列的界面,从低到高,从而能够创建多功能的、具有视觉吸引力的图形。然而,与其他库相比,在追求类似的情节质量时,这种灵活性往往导致需要更多的代码。

Folium

Folium[7]简化了在交互式小册子地图上实现数据可视化的过程。这个库提供了来自OpenStreetMap、Mapbox和Stamen的内置瓦片集。

优点

易于创建一个带有标记的地图

与Plotly、Altair和Bokeh等其他选项相比,Folium通过利用开放的街道地图提供了一种更直接的方法。这给人一种类似于谷歌地图的体验,而且代码最少。

还记得我们用Plotly创建的可视化Github用户位置的地图吗?有了Folium,我们可以进一步增强地图的外观。

import folium  
  
# 在一个列表中保存纬度、经度和地点的名称*  
lats = location_df["纬度"]  
lons = location_df["经度"]  
names = location_df["location"]  
  
# 用一个初始位置创建一个地图*  
m = folium.Map(location=[lats[0], lons[0]] )  
  
for lat, lon, name in zip(lats, lons, names):  
  # 用其他位置创建标记*  
  folium.Marker(  
    location=[lat, lon], popup=name, icon=folium.Icon(color="green")  
  ).add_to(m)  
  
m  

只用几行代码,我们就创建了一个显示用户位置的真实地图。

添加地点

Folium通过允许加入标记,可以很容易地添加其他用户的潜在位置。

# 启用在地图中添加更多的位置  
m = m.add_child(folium.ClickForMarker(popup="Potential Location"))  

在地图上点击,就在你点击的地方生成一个新的位置标记。

插件

Folium提供各种插件,可以与你的地图一起利用,包括Altair的插件。例如,如果我们想将全球Github用户的总星数热图可视化,并识别出拥有大量顶级用户和星数的地区,Folium热图插件就可以实现这一目的。

# heatmap  
  from folium.plugins import HeatMap  
  
m = folium.Map(location=[lats[0], lons[0]])  
  
HeatMap(data=location_df[["latitude", "longitude", "total_stars"]]).add_to(m)  
  
m  

经验之谈:Folium 只需几行代码就能创建互动地图。它提供了类似于谷歌地图的用户体验。

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方优快云官方认证二维码或者点击链接免费领取【保证100%免费】

点击免费领取《优快云大礼包》:Python入门到进阶资料 & 实战源码 & 兼职接单方法 安全链接免费领取

CVAT本地部署保姆级教程:用Docker Compose在Ubuntu上5分钟搞定你的私有数据标注平台 本文提供CVAT本地部署的保姆级教程,详细讲解如何在Ubuntu系统上使用Docker Compose快速搭建私有数据标注平台。从环境准备、Docker配置到CVAT部署全流程,涵盖硬件要求、性能优化及安全加固等关键步骤,帮助开发团队5分钟内完成高效、安全的标注环境搭建。 阅读详情

相关推荐

DDR5内存命令真值表详解:如何正确解析JESD79-5标准中的关键指令

本文深度解析JESD79-5标准中的DDR5内存命令真值表,将其视为动态通信协议进行拆解。详细阐述了1-Cycle与2-Cycle命令的区别、Bank Group寻址机制以及模式寄存器(MR)操作流程,为硬件与固件工程师提供了从信号解析到系统调试的完整实战指南,是理解和优化高性能计算平台内存子系统的核心。

numpy6sculptor的博客 548

【Python GUI库】六个图形用户界面库优缺点及实例预览

在Python中,有很多库可以帮助你创建图形用户界面(GUI)。 这篇文章将针对六个常用图形用户界面库进行预览!

AnRanGeSi的博客 4万+

STM32掉电保存配置参数技巧

本文介绍了使用STM32内置备份寄存器(BKP)实现掉电保存配置参数的方法。相比外接EEPROM或Flash,备份寄存器无需外设但存储容量有限,需通过VBAT引脚连接纽扣电池供电。文章详细说明了初始化步骤,包括使能PWR时钟、允许访问备份寄存器等操作,并提供了RTC初始化的代码示例。同时介绍了HAL库中读写备份寄存器的函数使用方法,包括HAL_RTCEx_BKUPWrite和HAL_RTCEx_BKUPRead函数的具体参数和调用示例。该方法适用于需要小容量数据掉电保存的应用场景。

hanhanhan233的博客 946

盘点12个Python数据可视化库,通吃任何领域

在数据可视化的研究热潮中,如何让数据生动呈现,成了一个具有挑战性的任务,随之也出现了大量的可视化软件。相对于其他商业可视化软件,Python是开源且免费的,而且具有易上手、效果好的优点。大家普遍第一次接触到的Python数据可视化库基本上都是Matplotlib。Python还有很多数据可视化库,本文盘点了12款常用的Python数据可视化库,挑选适合自己业务的那一款吧!Python有很多数据可视化库,这些数据可视化库主要分为和。

weixin_55154866的博客 2763

VScode搭建Opencv(C++开发环境)

VScode配置Opencv一、准备软件二 、下载软件1、MinGw下载2、 Cmake下载3、Opencv下载三、编译1、cmake-gui2、make3、install四、 VScode配置1、launch.json2、c_cpp_properties.json3、tasks.json五、测试 用了半天事件,看了各种的博客终于配置成功了,在这里记录并分享一下,让更多的人少走弯路。 本次环境是Win 10. 一、准备软件 我们本次用到的3个软件,(建议读者文件路径,文件版本 尽量都和我相同,这样不容易出错

河旬的博客 8万+

DSP配置I2C通讯(非IO口软件模拟时序)

dsp即数字信号处理器,是一种广泛应用的嵌入式处理器,主要应用是实时快速地实现各种数字信号处理算法,目前,国际主要的dsp供应商是ti公司,其tms32系列产品占据了dsp市场近一半的份额,本文以TMS320F28377D为例,使用ti公司dsp开发工具ccs10.1配置i2c模块。 写这篇文章的缘由,因为市面上很多DSP其实内部是具有硬件I2C接口的,但由于网络上大部分资料和例程都是利用IO口模拟I2C时序进而实现I2C通讯的。给很多想学习硬件I2C通讯的小伙伴带来了困难。 下面先介绍一下配置步骤 1.E

weixin_44387442的博客 5545

【原创佳作】太炫酷了,这里有一个用于制作数据面板大屏的Python模块

在Python当中用于绘制图表的模块,相信大家用的最多的便是matplotlib和seabron,除此之外还有一些用于动态交互的例如Plotly模块和Pyecharts模块,今天小编再为大家来推荐两个用于制作可视化大屏的库,分别叫做hvPlot以及Panel,在本篇教程当中,小编依次会为大家分享用pandas以及hvPlot结合生成具有交互性的图表用Panel模块生成小的...

weixin_43373042的博客 875

4D毫米波雷达天线设计

多种天线布局方案介绍、天线设计要点介绍

5734

6个顶级Python可视化库

如果你是Python可视化的新手,一些流行的可视化库包括Matplotlib、Seaborn、Plotly、Bokeh、Altair和Folium,以及大量的库和例子可能会让你感到不知所措。当可视化一个DataFrame时,选择使用哪个可视化库确实是一个头疼的事情。这篇文章云朵君将和大家一起学习每个库的。到最后,对它们的不同特点有更好的了解,在合适的时候更容易选择合适的库。你想要交互式可视化吗?像Altair、Bokeh和Plotly这样的库允许你创建交互式图表,用户可以探索和互动。

2401_86168842的博客 1427

ArcGIS实验教程——实验二:ArcGIS地理配准完整操作步骤

本文介绍ArcGIS 10.2中地理配准的完整操作流程,涵盖加载扫描地图、启用地理配准工具条、添加控制点(含经纬度输入与坐标系统选择)、均匀分布控制点以提升精度,并最终通过“更新地理配准”完成栅格数据的空间定位。强调控制点数量、分布及坐标系匹配的重要性,附带实验数据下载链接与获取方式,适用于初学者掌握扫描矢量化前的关键几何校正技能。

智慧空间实验室 9万+

自顶向下与自底向上编程思想的对比

一、核心定义与本质差异自顶向下编程思想如同绘制一幅完整的地图,从整体轮廓逐步细化到局部细节。其本质是从系统的整体目标出发,通过逐层分解将复杂问题简化为可实现的子问题,强调先定义 “做什么”,再考虑 “如何做”。自底向上编程思想则类似于搭建积木,从基础组件开始逐步构建复杂系统。其本质是从现有资源和基础功能出发,通过组合和扩展简单组件来实现复杂功能,强调先解决 “如何做” 的细节,再整合为 “做什么” 的整体。二、设计起点与逻辑流程对比设计起点:以系统的整体目标和业务需求为起点。例如设计一个电商平台,首先明确

二进制君 834

6个顶级Python可视化库!

如果你是Python可视化的新手,一些流行的可视化库包括Matplotlib、Seaborn、Plotly、Bokeh、Altair和Folium,以及大量的库和例子可能会让你感到不知所措。当可视化一个DataFrame时,选择使用哪个可视化库确实是一个头疼的事情。这篇文章云朵君将和大家一起学习每个库的。到最后,对它们的不同特点有更好的了解,在合适的时候更容易选择合适的库。你想要交互式可视化吗?像Altair、Bokeh和Plotly这样的库允许你创建交互式图表,用户可以探索和互动。

WANGWUSAN66的博客 1163

C#量化交易的市场数据采集与分析:从0到1构建你的‘数据雷达’——对比5大神器,代码实战全解析!

数据是量化交易的‘氧气’,而好的数据采集与分析是你的‘呼吸机’!本文5大神器+代码实战,总有一款适合你!(本文代码均经过测试,但请根据实际需求调整!

java专栏 730

2019 必知的 10 大顶级 python 库

朋友们,我是床长! 如需转载请标明出处:http://blog.youkuaiyun.com/jiangjunshow 作为数据科学和机器学习相关的研究和开发人员,大家每天都要用到 python。在本文中,我们将讨论一些 python 中的顶级库,开发人员可以使用这些库在现有的应用程序中应用、清洗和表示数据,并进行机器学习研究。 我们将讨论以下 10 个库: TensorFlow S...

人工智能AI技术 7741

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

6个令人称赞的Python可视化库

Plotly 提供了丰富的自定义选项,允许用户调整图表的各个方面,以满足特定的视觉和功能需求。

尤尔小屋 3034

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

掌握了这些顶级Python库,你就是大神!

Python的强大之处 Python有以下三个特点: · 易用性和灵活性 · 全行业高接受度:Python无疑是业界最流行的数据科学语言 · 用于数据科学的Python库的数量优势 事实上,由于Python库种类很多,要跟上其发展速度非常困难。因此,本文介绍了24种涵盖端到端数据科学生命周期的Python库。 文中提及了用于数据清理、数据操作、可视化、构建 模型甚至模型部署(以及其他用途)的库。这是一个相当全面的列表,有助于你使用Python开启数据科学之旅。 用于不同数据科学任务的Python库 一.

lh576的博客 1190

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

六个顶级的Python可视化项目

如果你是Python可视化的新手,一些流行的可视化库包括Matplotlib、Seaborn、Plotly、Bokeh、Altair和Folium,以及大量的库和例子可能会让你感到不知所措。当可视化一个DataFrame时,选择使用哪个可视化库确实是一个头疼的事情。这篇文章云朵君将和大家一起学习每个库的优点和缺点。到最后,对它们的不同特点有更好的了解,在合适的时候更容易选择合适的库。

周萝卜的博客 1872

Python可视化库

现如今大数据已人尽皆知,但在这个信息大爆炸的时代里,空有海量数据是无实际使用价值,更不要说帮助管理者进行业务决策。那么数据有什么价值呢?用什么样的手段才能把数据的价值直观而清晰的表达出来? 答案是要提供像人眼一样的直觉的、交互的和反应灵敏的可视化环境。数据可视化将技术与艺术完美结合,借助图形化的手段,清晰有效地传达与沟通信息,直观、形象地显示海量的数据和信息,并进行交互处理。数据可视化的应用十分广泛,几乎可以应用于自然科学、工程技术、金融、通信和商业等各种领域。下面我们基于Python,简单地介绍一下适用于

dfly_zx的博客 6544

Python中最好用的6个地图可视化库

图1地理空间数据无处不在:在这次新冠肺炎大流行中,我们见识到了各种地理空间数据可视化工具制作出的各种风格的地图。而对Python的使用者来说,有几个非常强大的库可以帮助我们进行地理空间数据可视化。通过本文,我将给大家分享Python生态中最好用的6地理空间数据可视化工具以及它们的一些案例。

python1234_的博客 1995

15 个顶级 Python 库,你必须要试试!

为什么我喜欢Python?对于初学者来说,这是一种简单易学的编程语言,另一个原因:大量开箱即用的第三方库,正是23万个由用户提供的软件包使得Python真正强大和流行。 在本文中,我挑选了15个最有用的软件包,介绍它们的功能和特点。

libaiup的博客 8249

Python中的6个优秀可视化库

相信大多数小伙伴在使用可视化工具时,经常会对使用哪个可视化工具感到困惑?本文将会为您分解了每个库的优缺点。 动机 如果您刚开始使用Python可视化,可能会不知所措的库和示例数量众多: Matplotlib Seaborn Plotly Bokeh Altair Folium 如果您有一个等待可视化的DataFrame,应该选择哪一个? 在某些情况下,某些库可能比其他库更好。 本文将展示每种方法的优缺点。 到本文结尾,您应该能够区分每个库的不同功能,并可以更轻松地选择优秀库。 我们将通过.

m0_49079037的博客 1203

2024 年您应该使用的 8 个顶级 Python 库

2024 年您应该使用的 8 个顶级 Python 库

Python单行客的博客 2157
上一篇: 一文入门Python面向对象编程(干货满满)
下一篇: 8个Python高效数据分析的技巧!
网络安全_入门教程
博客等级 码龄4年 1万+粉丝 2151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值