具有不同比例的多条线图
Multiple line plots with different scales
我想绘制音乐物理特征随时间变化的趋势。
例如,
from 1980 to 2010, the average song duration (unit: 100000 ms)
from 1980 to 2010, the average loudness (unit: 20dB)
您可以看到它们具有不同的比例,为每个特征随时间绘制线图会很简单。
但是如果我说有 30 个这样的特征,那么将所有这些线图包含在同一个图中是否合适? (因为画30个独立的线图有点浪费。)
如果是这样,我该如何克服不同缩放比例的问题(100000ms vs 20dB)?我应该先重新缩放数据吗?
感谢
这是一个 ggplot 方法(用假数据说明):
library(reshape2)
library(ggplot2)
library(ggthemes)
# Fake data
dat = mtcars[order(mtcars$mpg), c(1,3:7,11)]
dat = cbind(dat, setNames(dat, LETTERS[1:7]), setNames(dat, LETTERS[8:14]),
setNames(dat, LETTERS[15:21]), setNames(dat[,1:2], LETTERS[22:23]),
year=1980:(1980 + nrow(dat) - 1))
# Melt data to long format and plot
ggplot(melt(dat, id.var="year"), aes(year, value)) +
geom_line(lwd=0.3) +
facet_wrap(~ variable, ncol=5, scales="free_y") +
theme_tufte(base_size=7) +
expand_limits(y=0)
我想绘制音乐物理特征随时间变化的趋势。
例如,
from 1980 to 2010, the average song duration (unit: 100000 ms)
from 1980 to 2010, the average loudness (unit: 20dB)
您可以看到它们具有不同的比例,为每个特征随时间绘制线图会很简单。
但是如果我说有 30 个这样的特征,那么将所有这些线图包含在同一个图中是否合适? (因为画30个独立的线图有点浪费。)
如果是这样,我该如何克服不同缩放比例的问题(100000ms vs 20dB)?我应该先重新缩放数据吗?
感谢
这是一个 ggplot 方法(用假数据说明):
library(reshape2)
library(ggplot2)
library(ggthemes)
# Fake data
dat = mtcars[order(mtcars$mpg), c(1,3:7,11)]
dat = cbind(dat, setNames(dat, LETTERS[1:7]), setNames(dat, LETTERS[8:14]),
setNames(dat, LETTERS[15:21]), setNames(dat[,1:2], LETTERS[22:23]),
year=1980:(1980 + nrow(dat) - 1))
# Melt data to long format and plot
ggplot(melt(dat, id.var="year"), aes(year, value)) +
geom_line(lwd=0.3) +
facet_wrap(~ variable, ncol=5, scales="free_y") +
theme_tufte(base_size=7) +
expand_limits(y=0)