# **Last data update**: 01 aoû 2026, 21:01. **Last compile**: 15 aoû 2026, 15:37
Microprocessor Trend Data
Data - Log
Info
Info
- Microprocessor Trend Data html
variable
Code
`microprocessor-trend-data` |>
group_by(variable) |>
summarise(Nobs = n()) |>
print_table_conditional()| variable | Nobs |
|---|---|
| cores | 91 |
| frequency | 102 |
| specint | 76 |
| transistors | 100 |
| watts | 102 |
Transistors
Linear
Code
plot_linear <- `microprocessor-trend-data` |>
filter(variable == "transistors") |>
transmute(V1 = as.numeric(V1),
V2 = V2) |>
filter(!is.na(V1), !is.na(V2)) |>
ggplot() + geom_line(aes(x = V1, y = V2)) +
scale_y_continuous(breaks = 10^7*seq(0, 10, 1)) +
theme_minimal() +
ylab("# of transistors per microprocessor") + xlab("")
plot_linear
Log
Code
plot_log <- plot_linear +
scale_y_log10(breaks = 10^(seq(1, 10, 1)))
plot_log
Both
Code
ggarrange(plot_linear + ggtitle("Moore's Law\nLinear Scale"),
plot_log + ggtitle("\nLog Scale") + ylab(""))
Watts
Both
Code
plot1 <- `microprocessor-trend-data` |>
filter(variable == "watts") |>
transmute(V1 = as.numeric(V1),
V2 = V2) |>
filter(!is.na(V1), !is.na(V2)) |>
ggplot() + geom_line(aes(x = V1, y = V2)) +
scale_y_continuous(breaks = seq(0, 1000, 50)) +
theme_minimal() + ggtitle("Linear Scale") +
ylab("Watts") + xlab("")
plot2 <- plot1 +
scale_y_log10(breaks = c(1, 2, 5, 8, 10, 20, 50, 80, 100, 200, 500)) +
ggtitle("Log Scale")
ggarrange(plot1, plot2)
Linear
Code
plot1
Log
Code
plot2
Cores
Both
Code
plot1 <- `microprocessor-trend-data` |>
filter(variable == "cores") |>
transmute(V1 = as.numeric(V1),
V2 = V2) |>
filter(!is.na(V1), !is.na(V2)) |>
ggplot() + geom_line(aes(x = V1, y = V2)) +
scale_y_continuous(breaks = seq(0, 1000, 50)) +
theme_minimal() + ggtitle("Linear Scale") +
ylab("Cores") + xlab("")
plot2 <- plot1 +
scale_y_log10(breaks = c(1, 2, 5, 8, 10, 20, 50, 80, 100, 200, 500)) +
ggtitle("Log Scale")
ggarrange(plot1, plot2)
Linear
Code
plot1
Log
Code
plot2