Excel-R-Python: 峰峦图的实现
《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 pd
import joypy
df = 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即将上线。新版本不仅会保留原插件的基本功能,而且会拥有其他更多新功能。新插件可以轻松绘制矩阵气泡图,一键生成的效果如下图所示:
如需联系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