R 和 Python 数据可视化必备库的精华指南
原文towardsdatascience.com/the-essential-guide-to-r-and-python-libraries-for-data-visualization-33be8511c976成为某些编程语言的专业人士是每位有志于数据科学的专业人士的目标。在无数语言中达到一定水平是每个人的关键里程碑。对于数据工程师来说SQL 可能是最重要的语言。作为一名 Web 开发者你需要熟睡时就知道 JavaScript、HTML、CSS 和 PHP。对于数据科学家来说另一方面Python 和 R 是首选工具。这两种语言都有其优势和劣势 – 并且两者都提供了强大的工具和庞大的社区来分析和可视化数据。如果你刚刚开始你的数据科学之旅选择 R 和 Python 可能会让你感到不知所措。但如果你想在长期内进入这个领域你迟早会接触到这两种语言。此外如果你已经在大学里你可能已经学习了这两种语言的相关课程。但让我们深入探讨 R 和 Python 中用于数据可视化的最重要库了解在 R 和 Python 中创建图表的不同之处附代码示例以及两种语言的优缺点。目录1 – R 成为必备之选的原因以及可视化必备库 2 – Python 无处不在从数据分析到 Web 开发以及可视化必备库 3 – 步骤指南使用代码示例在 R 和 Python 中创建图表 4 – 优缺点比较 R 与 Python 在数据科学中的应用 5 – 最后的想法以及继续学习的方向1 – R 成为必备之选的原因R 是在 20 世纪 90 年代在奥克兰大学开发的专门用于统计分析与图形表示。R 特别适合统计分析、假设检验、数据处理和可视化表示。如果你想进入学术界并参与研究项目R 无论如何都是必需的尤其是在生物统计学、社会科学、心理学与经济学等领域。在 CRAN综合 R 存档网络上你可以找到成千上万的 R 包它们都托管在那里。你应该知道的 R 可视化必备库R 拥有无数的库。当涉及到数据可视化时有不同库各自的优势。以下是你绝对应该知道的 6 个重要库1. ggplot2你无论如何都需要了解这个库 – 它是 R 社区中无可争议的经典之作。你可以用它来创建用户自定义的高质量可视化。2. plotly使用Plotly你可以创建交互式图表。例如用户可以放大图表或切换到不同的视图。酷的是你还可以将它们集成到 Web 应用和仪表板中。3. lattice如果你需要一个 ggplot2 的替代品你可以使用Lattice来创建多层图表。ggplot2 更为常见但 lattice 在初学者看来更简单因此得分更高。4. shiny如果你需要一个实时展示数据的方法Shiny 是一个好的选择。你可以用它直接在 R 中开发交互式网络应用。你也可以将使用 ggplot2 或 plotly 创建的可视化集成到仪表板中。5. leaflet如果你想要创建交互式地理地图最好使用这个库。你可以用它创建交互式地图你还可以通过添加额外的图层、标记和弹出窗口来自定义这些地图。6. esquisse我最近发现了 esquisse。如果你想要快速创建原型它特别适合。这是一个可视化工具允许你通过拖放的方式创建基于 ggplot2 的可视化。这意味着你可以不写一行代码就创建可视化。然后你可以导出底层的 ggplot2 代码来进一步自定义你的图表。这个库可能值得单独写一篇文章…2 – Python 无处不在从数据分析到 Web 开发你知道蒙提·派森吗如果你不知道你绝对应该看看这个英国喜剧团体的片段。Python 是以蒙提·派森喜剧团体命名的不是那条蛇……并在 1991 年开发有时幽默有点黑暗需要一点时间——但绝对是一经典www.youtube.com/watch?vxxamBlMta94但回到主题这种语言被设计成易于阅读和具有清晰的语法。Python 可以说是一种“万能”的语言你可以在数据分析中使用它也可以用于机器学习、深度学习或 Web 开发例如使用 Django 框架。与 R 的 CRAN 类似Python 使用 PyPiPython Package Index作为其中心仓库拥有大量的库可供安装。虽然 R 主要用于统计和科研领域但 Python 几乎被所有行业使用。随着机器学习和大数据变得越来越重要Python 也变得越来越重要因为 Python 是机器学习的绝对首选语言使用 scikit-learn、TensorFlow、Keras 和 PyTorch。你应该知道的用于可视化的 Python 库我在这里整理了 8 个你绝对需要知道的库1. matplotlib即使您是初学者您几乎肯定之前已经遇到过这个 库。使用这个库您可以创建各种 2D 图表——从简单的折线图和直方图到复杂的子图。它为您提供了对图表的很多控制。例如如果您创建了一个条形图您可以在代码中调整坐标轴、颜色、字体甚至条形的宽度。然而对于复杂的可视化来说它通常有点繁琐——例如如果您想组合多个图表代码会变得更长、更复杂。2. seaborn这个 库 基于 matplotlib。它特别适合制作热图、配对图和箱线图等统计可视化。您还可以使用 seaborn 直接处理您的表格pandas DataFrames无需先转换数据。这使得您能够相对快速地识别数据中的初始模式、趋势和相关性。该库在探索性数据分析EDA方面特别有用。在我的最近一篇文章《掌握时间序列数据在 Python 应用机器学习之前初学者必须掌握的 9 个关键步骤》中您可以找到一些 EDA 的重要步骤。3. plotly如果您想创建交互式可视化如 3D 图表、地理地图或仪表板请使用 plotly。您可以放大图表、突出显示数据点或切换视图。这个库的伟大之处在于您还可以轻松地将图表集成到 Web 应用程序中。如果您刚开始使用 Pythonplotly.express API 是一个轻松入门的好方法。4. pandas当然pandas 不仅仅是一个用于可视化的库它几乎适用于任何数据操作任务。如果您想可视化数据可以直接使用 pandas 从 DataFrame 创建。通过使用‘df.plot()’方法您可以轻松创建线图、条形图或散点图。如果您想在深入分析之前快速轻松地了解您的数据pandas 绝对是一个不错的选择。5. bokeh如果您想创建可以直接嵌入 HTML 的交互式仪表板这个 库 是理想的选择。bokeh 专门为交互式、Web 友好的可视化而开发。该库以其快速的渲染时间而著称尤其是在处理大型数据集时。6. altair说是 R 中 ggplot2 的对立面——语法非常相似。Altair非常适合探索性数据分析EDA您可以快速轻松地创建有意义的图表。7. holoviewss需要非常快速且不想编写大量代码吗那么创建可视化最佳的方式就是使用 holoviews。您可以用最少的代码创建交互式图表这使得库非常适合原型设计或需要快速反馈的情况。8. folium使用 folium您可以创建交互式地理地图和可视化。它基于 leaflet.js允许您创建带有标记、热图或聚类的地图。例如您可以在世界地图上显示数据点或进行地理分析。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/2e8ff9139a29adb2d64a3aad27de8eba.png自己的可视化 - 来自 unDraw.co 的插图3 – 步骤指南使用代码示例在 R 和 Python 中创建图表开始的最佳方式是打开 RStudio 或 Jupyter Lab并逐步运行代码示例。使用 R 运行可视化所需的前提条件在任何情况下您必须已经下载了 R 和 RStudio。然后我们使用以下命令安装用于可视化的库# Installing Packages for Rinstall.packages(c(ggplot2,plotly,leaflet))为了使可视化易于重现我们使用内置数据集‘mtcars’其中包含如马力、重量和燃油消耗等车辆数据。我们使用以下命令加载数据集# Loading data for Rdata(mtcars)# Loads the built-in mtcars dataset into memory使用 Python 创建可视化所需的前提条件当然您需要安装 Python。我也使用 Jupyter Lab 来展示代码示例如果您更喜欢使用 VSCode这也是一个好的替代方案。我使用 Anaconda这是一个使您更容易开始的 Python 发行版。如果您不使用 Anaconda您可以使用 pip 安装以下包。为了确保库之间没有冲突我使用以下命令创建一个单独的环境conda create--name NameEnvironment python3.10在这篇文章“Python 数据分析生态系统 - 初学者路线图”中您将找到有关如何开始的更详细说明。在我们激活环境conda activate NameEnvironment之后我们安装所需的库# Installing Packages for Pythonconda install matplotlib seaborn pandas plotly folium安装完库后您可以通过在终端中输入“jupyter lab”来启动 Jupyter lab。现在我们加载一个直接集成到 Pandas 中的样本数据集。尽管这个样本数据集的数据不如真实数据有趣但这样更容易通过代码示例进行操作。Iris 数据集包含 150 个关于三种鸢尾花物种的观察结果每个物种有四个特征萼片长度、萼片宽度、花瓣长度、花瓣宽度以及相应的花种。# Python-Visualization# Importing the librariesfromsklearn.datasetsimportload_irisimportpandasaspdimportmatplotlib.pyplotaspltimportseabornassnsimportnumpyasnp# Loading the Iris dataset as a pandas DataFrameirisload_iris(as_frameTrue)dfiris.frame# Displaying the first 5 rows of the datasetprint(df.head())创建基本图表直方图首先我们使用 R 创建直方图来可视化马力hp的分布我们加载数据集并在‘hist’后指定数据集和列。我们使用‘main’和‘xlab’来标记图表和轴。我们使用‘col’定义填充颜色使用‘border’定义边框颜色。# R-Visualization# Histogram for Horsepower (hp) in the mtcars Datasethist(mtcars$hp,mainHistogram of Horsepower,xlabHorsepower,colskyblue,borderblack)# Creates a histogram for the hp column# Adding gridlines for better readabilitygrid(nxNULL,nyNULL,colgray,ltydotted)使用 Python我们使用 matplotlib 创建一个直方图显示 Iris 数据集中‘花萼长度’的分布我们使用区间将数据分成 10 个区间。当你创建直方图时区间表示分布显示的粒度级别。从 5 到 10 个区间通常是好的标准并为你提供了一个关于数据分布的稳固概述。如果你选择更少的区间你会看到更多的总体趋势但细节较少。使用更多的区间你可以更精确地识别细节和模式但图表可能会显得混乱。特别是如果你处理的是较小的数据集100 个值5-10 个区间通常是有意义的。# Python-Visualization# Histogram for Sepal Length in the Iris Datasetplt.hist(df[sepal length (cm)],bins10,colorskyblue,edgecolorblack)# Creates a histogram for Sepal Lengthplt.title(Histogram of Sepal Length)# Adds a title to the plotplt.xlabel(Sepal Length (cm))# Labels the x-axisplt.ylabel(Frequency)# Labels the y-axis# Add gridlines for better readabilityplt.grid(axisy,linestyle--,alpha0.7)plt.show()# Displays the plot条形图我们使用条形图来比较分类数据。首先我们在 R 中分析 mtcars 数据集中不同气缸数的汽车的频率分布与直方图不同我们不仅需要选择 dataframe 和列还需要使用‘table()’来创建一个表格统计每个气缸数的频率。这有助于我们了解每个气缸类别在数据集中出现的频率。# R-Visualization# Bar chart for cylinders in the mtcars datasetbarplot(table(mtcars$cyl),mainNumber of Cylinders in Cars,xlabCylinders,ylabFrequency,colorange,cex.names0.8)# Adjusts the axis label size在 Python 中我们创建一个条形图来分析 Iris 数据集中每个目标类别即花类型的频率使用‘[‘target’]’我们统计每个目标类别在 DataFrame 中出现的频率。每个类别代表三种鸢尾花类型中的一种。然后我们使用‘plot()’中的信息来指定创建一个带有橙色条和黑色边框的条形图。这有助于我们可视化数据集中花类型的分布。# Python-Visualization# Bar chart for target classes in the Iris datasetdf[target].value_counts().plot(kindbar,colororange,edgecolorblack)# Creates the bar chartplt.title(Frequency of Target Classes)# Adds a title to the plotplt.xlabel(Iris Flower Type)# Labels the x-axisplt.ylabel(Frequency)# Labels the y-axisplt.xticks(rotation0)# Ensures x-axis labels are horizontalplt.show()# Displays the plot散点图我们使用散点图来可视化两个数值变量之间的关系。在 R 中我们检查发动机功率hp和汽车重量wt之间的关系。这样的图表帮助我们识别变量之间可能存在的模式或相关性。例如我们可以测试假设较重的汽车倾向于有更多的马力。我们首先指定我们想要比较的两个变量。使用‘pch19’我们定义点的形状——这里点是填充的圆形使用‘col’它们以蓝色显示。或者你也可以使用‘pch17’来创建填充的三角形或使用‘pch0’来创建空心的正方形# R-Visualization# Scatter plot for Horsepower (hp) vs. Car Weight (wt) in the mtcars datasetplot(mtcars$hp,mtcars$wt,mainScatter Plot: Horsepower vs. Weight,xlabHorsepower,ylabWeight,pch19,colblue)要补充的是为了更好地识别趋势我们可以通过添加以下命令来添加回归线# R-Visualization# Adding a regression lineabline(lm(mtcars$wt~mtcars$hp),coldarkgreen,lwd2)在 Python 中我们可视化花瓣长度和花瓣宽度之间的关系。例如我们可以检查较大的花瓣是否也更宽。在第一行我们输入 x 轴和 y 轴的值并将点着色为蓝色。通过设置alpha0.7我们指定点应该稍微透明这样当它们重叠时我们仍然可以轻松地看到点。# Python-Visualization# Scatter plot for Sepal Length vs. Sepal Widthplt.scatter(df[sepal length (cm)],df[sepal width (cm)],colorblue,alpha0.7)plt.title(Scatter Plot: Sepal Length vs. Sepal Width)plt.xlabel(Sepal Length (cm))plt.ylabel(Sepal Width (cm))plt.show()待补充对于这个小型数据集我们可以使用 NumPy 来计算和绘制回归线。如果数据集更大则最好使用 seaborn。# Python-Visualization# Calculate data for the regression linexdf[sepal length (cm)]ydf[sepal width (cm)]m,bnp.polyfit(x,y,1)# Calculates slope (m) and y-intercept (b)# Scatter plotplt.scatter(x,y,colorblue,alpha0.7,s50)# Add point size for better visibilityplt.plot(x,m*xb,colorred,linewidth2,labelRegression Line)# Add regression lineplt.title(Scatter Plot: Sepal Length vs. Sepal Width)plt.xlabel(Sepal Length (cm),fontsize12)plt.ylabel(Sepal Width (cm),fontsize12)plt.legend()# Adds a legend to distinguish the regression lineplt.show()带有地理地图的交互式图表最后我们希望可视化一个交互式的地理地图标记你已经访问过的地点例如。在 R 中我们使用 leaflet 来实现这个功能首先我们使用leaflet()创建一个空的地图对象。通过addTiles()添加默认地图瓦片。然后使用addMarkers()在地图上添加标记的位置。# R-Visualizationlibrary(leaflet)# Interactive map with Leafletleaflet()%%addTiles()%%addMarkers(lng-0.1278,lat51.5074,popupLondon)%%addMarkers(lng2.3522,lat48.8566,popupParis)在 Python 中我们使用 folium 库使用folium.Map()创建地图。location指定地图的起始位置。zoom_start设置一个初始缩放级别以便我们从欧洲的概览开始。然后我们使用folium.Marker()添加标记。最后我们将地图保存为可以在浏览器中打开的 HTML 文件。# Python-Visualizationimportfolium# Locations and their coordinateslocations[{name:London,coords:[51.5074,-0.1278]},{name:Paris,coords:[48.8566,2.3522]}]# Interactive map with Foliummfolium.Map(location[51.5074,-0.1278],zoom_start5)# Initial view set to London# Add markers for each locationforlocationinlocations:folium.Marker(location[coords],popuplocation[name]).add_to(m)# Save the map as an HTML filem.save(map.html)4 – 优势和劣势比较 R 与 Python 在数据科学中的应用R 语言是专门为统计和数据分析开发的使用时你可以感受到这一点。但这种编程语言的优缺点是什么R 的优势在统计与数据分析方面的优势R 语言特别优化了统计操作和可视化。使用该语言时这一点很快就会显现出来。R 语言还提供了广泛的回归、假设检验和数据建模功能。社区与开源R 语言拥有一个非常活跃的社区他们不断开发新的包并且你可以通过这个社区在互联网上找到许多资源。此外该语言是开源的因此对所有人都是免费且可访问的。集成到其他环境你可以轻松地将 R 集成到其他环境中。例如你可以将 R 集成到 Jupyter Notebooks 中进行交互式分析使用 shiny 仪表板来显示结果或者使用如httr和jsonlite等包来使用 API。R 允许你通过DBI和RPostgreSQL等包直接访问关系数据库。那么 R 的劣势是什么呢学习曲线较陡与 Python 相比R 语言的语法对初学者来说可能更难。此外错误信息通常不太直观。R 语言中不太直观的错误信息的一个例子是常见的“对象未找到”错误。当你在环境中引用一个不存在变量或对象时通常会看到这个消息通常是由于简单的拼写错误或忘记定义变量。性能当处理大型数据集时R 可能比 Python 慢。R 在机器学习和深度学习方面也不太适合虽然 R 通过像‘caret’或‘randomForest’这样的库提供了一些机器学习的支持但它不如 Python 的 TensorFlow 和 PyTorch 框架那样全面。应用范围较窄R 主要专注于在统计领域的使用。对于其他任务如 Web 开发或机器学习R 不能像 Python 那样广泛使用。Python 是最多才多艺和最广泛使用的编程语言之一。但即使是 Python也不是适合所有事情让我们从 Python 的优点开始易于学习Python 拥有非常直观且易于理解的语法这与英语有很多相似之处。如果你是初学者Python 通常是被推荐的语言。例如考虑以下 Python 代码用于条件语句if age 18: print(You are an adult.) else: print(You are not an adult.)多才多艺这个语言的优点在于它不仅适合数据科学。一旦你掌握了这门语言你还可以用它来进行自动化、Web 开发和当然机器学习。庞大的社区与 R 一样Python 有一个庞大的社区提供各种库和资源。Python 也是开源的因此对每个人都是免费可用的。性能通过 NumPy、Pandas 和 Dask 等库Python 拥有处理大量数据的高效库。查看我的文章“Python 中的 NumPy 和 Pandas 的实际深入探讨数据分析”以了解 Numpy 和 Pandas 的概述。那么Python 的缺点是什么不专注于统计如果你想要进行复杂的统计分析并且你的主要关注点是统计R 可能是更好的选择。性能如果你将 Python 与其他编译型编程语言如 C或 Java进行比较Python 可能会慢一些。你可以通过 NumPy 或 Cython 等库来最小化这一劣势。5 – 最后的想法何时使用 R何时使用 Python如果你是一个编程新手或者正在寻找一种多用途的语言Python 可能是最佳选择。然而这两种编程语言都是不错的选择。如果你的主要关注点是统计和数据可视化R 可能是一个更好的选择。但选择 R 和 Python 之间的重要性几乎不亚于理解数据分析的基本原则你如何清理原始数据并为其分析做准备你需要采取哪些步骤来进行探索性数据分析EDA以识别数据中的模式和关系哪些可视化最适合向他人展示你的结果除了 R 和 Python还有其他在数据分析与可视化中重要的语言和工具。其中之一是 Julia它在数值计算和科学计算方面尤其快速高效。还有 MATLAB它拥有强大的可视化和计算功能。由于其在特定领域的强大计算能力和易用性MATLAB 在学术界和工程界被广泛使用。然而它相对昂贵且灵活性较低。Tableau 和 Power BI 是创建交互式可视化而无需编程技能的出色工具并且在商业环境中被广泛使用。当然还有 Excel它几乎允许任何人在不需要了解编程语言的情况下轻松创建许多可视化。虽然 Excel 是初学者的优秀工具但当处理大型数据集时其局限性变得明显。你可以在哪里继续学习Medium – 初学者探索关键数学概念的旅程应用数据分析简化GeeksForGeeks – R 编程中的 Esquisse 包DataCamp 课程 – Python 数据科学入门 (无联盟链接只有第一部分是免费的)DataCamp 课程 – R 语言入门 (无联盟链接只有第一部分是免费的)IBM 博客 – Python 与 R 的区别是什么
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2617427.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!