Я создал следующий фрейм данных в R для создания графика с использованием ggplot
library(data.table)
library(ggplot2)
library(plotly)
df <- data.frame("X_Frequency" = c(5, 10, 55, 180, 300, 360, 1000, 2000)
, "X_Axis" = c(0.009185742, 0.207822221, 0.067542222, 0.002597778,
0.002597778, 0.001454756, 0.001454756 , 0.001454756))
Далее я сгенерировал график с использованием ggplot
B <- ggplot(data = df,
mapping = aes(x = X_Frequency, y = X_Axis)) +
geom_line() + labs(x = "Frequency(Hz)", y="Axis")
B <- ggplotly(B, dynamicTicks = TRUE)###Hovering enabled
B <- layout(B, yaxis = list(type = "log"))##X Y log scales enabled
B <- layout(B, xaxis = list(type = "log"))
B
Я создал следующий фрейм данных df241с интерполированными значениями между различными наблюдениями в df1.Сначала мы создаем наклоны
df$X_Slope2 <- 0### Initiate slope column
for(i in 2:nrow(df)){
df$X_Slope2[i] = (df$X_Axis[i] - df$X_Axis[i-1]) /
(df$X_Frequency[i] - df$X_Frequency[i - 1])
}
Затем мы присваиваем соответствующие наклоны всем значениям
df_new <- bind_cols(df %>%
select(X_Frequency, X_Axis, X_Slope2) %>%
complete(., expand(., X_Frequency = 5:2000))
Теперь мы вычисляем интерполированные значения X-частоты, X_Axis из df_new, используя наклоны
for(i in 1: nrow(df241)){
if(is.na(df241$X_Axis[i]) == T){
df241$X_Axis[i] = df241$X_Slope2[i] *
(df241$X_Frequency[i] - df241$X_Frequency[i-1]) +
df241$X_Axis[i-1] } else {
df241$X_Axis[i] = df241$X_Axis[i]}}
Я хочу разместить эти интерполированные значения из df241 на исходной диаграмме B, сгенерированной выше.Как это может быть достигнуто.Я прошу кого-то, чтобы помочь мне.
Примечание. Я попытался сгенерировать новый график на основе df_new dataframe.но график выглядит очень отличающимся от исходного графика -B.