用户名:  密码:   
网站首页即时通讯活动公告最新消息科技前沿学人动向两岸三地人在海外历届活动关于我们联系我们申请加入
栏目导航 — 美国华裔教授专家网科技动向科技前沿
关键字  范围   
 
体验R和python的不同绘制风格
作者:左py右r | 2024/3/4 11:36:15 | 浏览:460 | 评论:0

随着科技的发展,我们生活中生产的数据日益增加,数据可视化变得至关重要!通过大数据的可视化,使我们更能读懂其中的奥秘!

目前r和Python是数据分析领域最常见的两个编程语言,尤其适合于统计可视化。它们两个编程语言的可视化体系也非常复杂,目前主流的是R的ggplot2和Python的matplotlib、seaborn,我们来分开介绍一下:

ggplot2绘图体系的核心思想是将数据映射到图形属性上,通过图层的叠加来构建图形。下面是ggplot2绘图体系的一些关键概念:

数据:ggplot2使用数据框作为数据输入的基本单位。数据框是一个二维表格,其中每一列代表一个变量,每一行代表一个观察值。
图层(Layer):图层是ggplot2中最基本的组成单元。每个图层都由数据、图形属性和统计变换组成。通过将多个图层叠加在一起,可以创建复杂的图形。
几何对象(Geom):几何对象是图层中的图形元素,用于表示数据的形状、大小、颜色等属性。ggplot2提供了多种几何对象,如点、线、条形、面积等。
映射(Mapping):映射是将数据变量与图形属性进行关联的过程。例如,将数据的x轴映射到图形的横坐标,将数据的颜色映射到图形的填充颜色。
统计变换(Stat):统计变换是对数据进行汇总、转换或计算的过程。例如,计算数据的均值、中位数、频率等。ggplot2提供了多种统计变换函数,如summarize、count、bin等。
标度(Scale):标度用于将数据的取值范围映射到图形属性的取值范围。例如,将数据的数值范围映射到颜色的渐变范围。ggplot2提供了多种标度函数,如scale_x_continuous、scale_color_gradient等。
坐标系(Coordinate):坐标系定义了图形的坐标轴和网格线的样式。ggplot2提供了多种坐标系,如笛卡尔坐标系、极坐标系等。
主题(Theme):主题用于设置图形的整体样式,包括背景色、字体、标签等。ggplot2提供了多种主题,如theme_gray、theme_bw等。
通过组合和调整这些概念,ggplot2可以绘制出高度可定制的、美观且具有统计意义的图形。它的语法简洁明了,易于学习和使用,同时也具有很高的灵活性和扩展性。

matplotlib是Python中最常用的绘图库之一,它提供了广泛的绘图功能,可以创建各种类型的图形,包括线图、散点图、柱状图、饼图、等高线图等。

下面是matplotlib的一些关键特点和功能:

简单易用:matplotlib提供了简单直观的API,使得绘图变得简单易用。它的语法和风格与MATLAB相似,因此对于熟悉MATLAB的用户来说,上手很容易。
多种绘图风格:matplotlib支持多种绘图风格,包括面向对象的绘图和基于pyplot模块的绘图。面向对象的绘图风格更加灵活和可扩展,而pyplot模块则提供了一组简单的函数,可以快速绘制常见的图形。
支持多种输出格式:matplotlib可以将图形保存为多种格式,包括PNG、JPEG、PDF、SVG等。这使得用户可以方便地将图形用于报告、论文或网页等不同的应用场景。
丰富的图形类型:matplotlib支持绘制多种类型的图形,包括线图、散点图、柱状图、饼图、等高线图、热力图等。用户可以根据自己的需求选择合适的图形类型。
组装较复杂:提供了许多零件,供用户跟需要进行组装,比较费时间。
Seaborn是一个建立在Matplotlib之上的Python数据可视化库,轻松创建各种统计图表和美化数据可视化,提供了高级接口和定制化选项,使数据科学家和分析师能够更轻松地制作漂亮且具有信息价值的图表。

Seaborn的特点:

统计数据可视化:Seaborn专注于统计数据可视化,旨在帮助用户更轻松地探索和理解数据的分布、关系和趋势。它提供了许多用于绘制统计图表的高级函数,如散点图、直方图、小提琴图和回归图等。
美观的默认样式:Seaborn具有吸引人的默认绘图样式和颜色主题,使图表在外观上更具吸引力。这意味着用户不需要过多的自定义就可以创建漂亮的图表。
内置数据集支持:Seaborn包含一些内置的示例数据集,用户可以用来练习和演示数据可视化技巧,这些数据集涵盖了不同领域的数据。
定制化能力:虽然Seaborn提供了美观的默认样式,但用户仍然可以轻松地自定义图表的各个方面,包括颜色、线型、标记、标题等,以满足特定需求。
集成统计方法:Seaborn提供了方便的函数来集成统计方法,如拟合回归线、绘制置信区间和展示数据的分布。
总的来说,各有各的优点,没有最好的,只有最适合的!但如果掌握这些绘图技能,根据需求,选着合适的绘图方式,完成可视化,未尝不是一个更好的选择!

尽管不同的包或库的绘制风格不同,但它们的绘制过程是一致的,如下图所示:

体验R和python的不同绘制风格

先画出图的大致轮廓,再根据需求,添加更多的细节和细节调整,一张完美的图就出来了啊!

那我们接下来体验一下使用R的ggplot2和Python的matplotlib绘制一张饼图吧!

体验R和python的不同绘制风格

1.模拟数据

library(ggplot2)
#模拟数据
labels=c('Normal', 'FL', 'FH', 'CS', 'DL', 'DH', 'T1', 'T2', 'T3', 'Mixed')
size=c(16, 10, 10, 10, 10, 7, 17, 30, 11, 7)
colors=c('#bebdbd', '#bbe165', '#6e8a3c', '#546a2e','#f1c055', '#eb8919', '#f69693', '#f7474e', '#aa0c0b', '#570a08')

#把模拟数据转换成数据框
  data=data.frame(
    group = labels,
    value = size
  )
2.绘制饼图的大致轮廓

 p=ggplot(data, aes(x="", y=value, fill=group)) +
   geom_bar(width = 1, stat = "identity")+
   coord_polar("y", start=0)
3.添加细节和修改

p=p+scale_fill_manual(values = colors) + #添加饼图的自定义颜色
  coord_polar(theta = "y", direction = -1) +#修改饼图中各成分的顺序
  theme_void() + theme(plot.title = element_text(hjust = 0.5),legend.title = element_blank())  #设置背景和主题
Python的matplotlib绘图

#安装matplotlib库,如果之前有安装,就不用安装了
#在pycharm终端输入下面命令就可以进行安装了
pip install matplotlib  -i https://pypi.tuna.tsinghua.edu.cn/simple
1.模拟数据

#导入相关可视化库
import matplotlib.pyplot as plt
#模拟数据
labels = ['Normal', 'FL', 'FH', 'CS', 'DL', 'DH', 'T1', 'T2', 'T3', 'Mixed']
sizes = [16, 10, 10, 10, 10, 7, 17, 30, 11, 7]
colors = ['#bebdbd', '#bbe165', '#6e8a3c', '#546a2e','#f1c055', '#eb8919', '#f69693', '#f7474e', '#aa0c0b', '#570a08']
2.绘制饼图的大致轮廓

fig, axes = plt.subplots(figsize=(9,5),ncols=2,width_ratios=[3,1])
ax1, ax2 = axes.ravel()
patches, _= ax1.pie(sizes,shadow=False, counterclock=False, startangle=90, colors=colors)
3.添加细节和修改

#添加饼图的图例和调整图例的位置
ax1.axis('equal')
ax2.axis('off')
ax2.legend(patches, labels, loc='center left',frameon=False,prop={'size':15})
plt.show()
可视化结果:

体验R和python的不同绘制风格


看起来是不是挺简单的,感兴趣的小伙伴可以进行细节微调,进一步美化图形,我们下次再见!




相关栏目:『科技前沿
工信部:未来产业六大方向聚焦人形机器人、脑机接口、量子科技等领域 2024-11-06 [334]
Gartner 公布2025年十大战略技术趋势 2024-10-31 [487]
这样图解Transformer应该没人看不懂了吧——Transformer工作原理 2024-10-16 [858]
Nature:智能体涌现出语言 2024-10-16 [832]
50个顶级ChatGPT论文指令 2024-10-10 [1049]
推荐五种简单有效的数据可视化方式 2024-10-10 [974]
这么有深度的文章是ChatGPT写的? 2024-10-10 [973]
讲透一个强大的算法模型,CNN!! 2024-10-10 [965]
人类与 AI 协同的三种模式 2024-10-10 [557]
11 种经典时间序列预测方法! 2024-10-09 [490]
相关栏目更多文章
最新图文:
:引力波天文台或有助搜寻暗物质粒子 :Sail Through the Mist - SoCal Innovation Forum 2019(10/5) 游天龙:《唐人街》是如何炼成的:UCLA社会学教授周敏的学术之路 :“为什么海外华人那么爱国,但是让他回国却不愿意?...“ :学术出版巨头Elsevier 彻查433名审稿人“强迫引用”黑幕 :中国336个国家重点实验室布局 :中澳政府联合出手打击洗钱和逃税漏税 大量中国居民海外账户遭冻结 :摄影师苏唐诗与寂寞百年的故宫对话6年,3万张照片美伦美奂
更多最新图文
更多《即时通讯》>>
 
打印本文章
 
您的名字:
电子邮件:
留言内容:
注意: 留言内容不要超过4000字,否则会被截断。
未 审 核:  是
  
关于我们联系我们申请加入后台管理设为主页加入收藏
美国华裔教授专家网版权所有,谢绝拷贝。如欲选登或发表,请与美国华裔教授专家网联系。
Copyright © 2024 ScholarsUpdate.com. All Rights Reserved.