随着科技的发展,我们生活中生产的数据日益增加,数据可视化变得至关重要!通过大数据的可视化,使我们更能读懂其中的奥秘!
目前r和Python是数据分析领域最常见的两个编程语言,尤其适合于统计可视化。它们两个编程语言的可视化体系也非常复杂,目前主流的是R的ggplot2和Python的matplotlib、seaborn,我们来分开介绍一下:
ggplot2绘图体系的核心思想是将数据映射到图形属性上,通过图层的叠加来构建图形。下面是ggplot2绘图体系的一些关键概念:
通过组合和调整这些概念,ggplot2可以绘制出高度可定制的、美观且具有统计意义的图形。它的语法简洁明了,易于学习和使用,同时也具有很高的灵活性和扩展性。
matplotlib是Python中最常用的绘图库之一,它提供了广泛的绘图功能,可以创建各种类型的图形,包括线图、散点图、柱状图、饼图、等高线图等。
下面是matplotlib的一些关键特点和功能:
Seaborn是一个建立在Matplotlib之上的Python数据可视化库,轻松创建各种统计图表和美化数据可视化,提供了高级接口和定制化选项,使数据科学家和分析师能够更轻松地制作漂亮且具有信息价值的图表。
Seaborn的特点:
总的来说,各有各的优点,没有最好的,只有最适合的!但如果掌握这些绘图技能,根据需求,选着合适的绘图方式,完成可视化,未尝不是一个更好的选择!
尽管不同的包或库的绘制风格不同,但它们的绘制过程是一致的,如下图所示:
先画出图的大致轮廓,再根据需求,添加更多的细节和细节调整,一张完美的图就出来了啊!
那我们接下来体验一下使用R的ggplot2和Python的matplotlib绘制一张饼图吧!
R的ggplot2绘图
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()
可视化结果:
看起来是不是挺简单的,感兴趣的小伙伴可以进行细节微调,进一步美化图形,我们下次再见!