Excel-R-Python: 峰峦图的实现

数据小魔方

共 618字,需浏览 2分钟

 ·

2020-08-20 16:05

《R语言数据可视化之美》中详细介绍了各种峰峦图的绘制方法。其中关于R-ggridges包的问题1今天有了新的认识,并做修正奉献给大家。ggridges包有一个很惊艳的函数geom_density_ridges_gradient()可以绘制多数据系列的核密度估计图,如下图所示:

#代码如下:library(ggplot2)library(ggridges)#theme_set(theme_ridges())ggplot(lincoln_weather, aes(x = `Mean Temperature [F]`, y = `Month`)) +geom_density_ridges_gradient(aes(fill = `Month`), scale = 3, size = 0.3) +  theme(legend.position = "none")

 在这个函数中,fill的颜色还可以以x轴的数值作为映射,如下图所示:
 

#代码如下:library(ggplot2)library(ggridges)#theme_set(theme_ridges())library(RColorBrewer)Colormap<- colorRampPalette(rev(brewer.pal(11,'Spectral')))(32)ggplot(lincoln_weather, aes(x = `Mean Temperature [F]`, y = `Month`)) +geom_density_ridges_gradient(aes(fill = ..x..), scale = 3, size = 0.3  ) +scale_fill_gradientn(colours=Colormap,name = "Temp. [F]")

我之前说的ggridges包中, 由于没有Y轴数值,无法得知每个数据系列对应的Y轴数值,也就无法得到核密度估计得具体数值,只能看到数据大概的分布形状;
核密度估计面积的高度对应核密度估计得数值,这就相当于将Y轴的对应数值使用颜色映射实现啦。

有朋友Hazard在知乎上说还是可以通过ggridges包实现的,具体代码如下:

#代码如下:library(ggplot2)library(ggridges)#theme_set(theme_ridges())library(RColorBrewer)ggplot(lincoln_weather, aes(x = `Mean Temperature [F]`, y = rev(`Month`), fill = ..density..)) + geom_density_ridges_gradient(scale = 3, rel_min_height = 0.01,size = 0.3) +scale_fill_gradientn(colours = colorRampPalette(rev(brewer.pal(11,'Spectral')))(32))

但是对于不是核密度估计的图表,ggridges包还是没有办法实现。下面就是使用山峰叠峦图展示多数据系列的时序数据,而不是核密度估计,如下图1所示。但是这个图也存在之前的问题:由于没有Y轴数值,无法得知每个数据系列对应的Y轴数值。图2所示就将Y轴数值映射到颜色colormap,这样就可以得到每个时间点对应的数值。

图1


新书《Python数据可视化之美》也介绍了这种图的绘制方法,joypy 包提供了joyplot()函数,它根据数据可以直接绘制不同颜色的核密度估计峰峦图,其具体代码如下:

import pandas as pdimport joypydf = pd.read_csv("lincoln_weather.csv")Categories=['January''February''March''April''May''June','July''August','September''October','November','December']df['Month']=df['Month'].astype("category",categories=Categories,ordered=True)


Excel插件EasyCharts2.0: EasyShu


原Excel图表插件EasyCharts 1.0的主要功能包括1. 图表风格的自动转换;2. 颜色主题的自动转换;3. 新型图表的自动绘制;4. 数据分析的自动实现;5. Excel辅助工具的使用 Excel图表插件EasyCharts 2.0版本:EasyShu即将上线。新版本不仅会保留原插件的基本功能,而且会拥有其他更多新功能。新插件可以轻松绘制矩阵气泡图,一键生成的效果如下图所示:

我们即将推出的Excel插件EasyCharts 1.0的升级版-EasyShu,也可以一键绘制峰峦图,其效果图如下所示。新插件EasyShu本月底即将发布,敬请期待。



如需联系EasyShu团队

请加微信:EasyCharts

微信公众号【EasyShu】博文代码集合地址

https://github.com/Easy-Shu/EasyShu-WeChat


数据可视化之美系列书籍




《Python数据可视化之美》-配套源代码下载地址

Github

https://github.com/Easy-Shu/Beautiful-Visualization-with-python

《R语言数据可视化之美》-增强版配套源代码下载地址

Github

https://github.com/Easy-Shu/Beautiful-Visualization-with-R


浏览 339
点赞
1评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
全部评论
QS10686580003fd6fba2023-12-18 16:18
第三张图,将Y轴的对应数值使用颜色映射实现的代码没有啊,请问可以发一下吗?
点赞回复
推荐
点赞
1评论
收藏
分享

手机扫一扫分享

分享
举报