Я пытаюсь отобразить два набора данных на одном графике. Наборы имеют одинаковые значения х. Один набор должен быть нанесен на логарифмическую шкалу по оси y, другой - по линейной шкале по оси y. Для этого поста создается поддельный набор данных как
library(pracma)
x<-logseq(0.1,100,60)
y1<-logseq(50,2000,60)
y2<-linspace(0,90,60)
d<-data.frame(x,y1,y2)
Я пытаюсь воссоздать этот сюжет из Excel. Точки пространства журнала отображаются красным цветом, а строки - синим.
Самое близкое, что мне удалось получить в R, - это
scaleFactor<-max(d[,2])/max(d[,3])
Bode<-ggplot(data=d, aes(x=d[,1]))+
geom_point(aes(y=d[,2]), col="red")+
geom_point(aes(y=d[,3]*scaleFactor))+
scale_y_continuous(name="|Z|, ohm",
sec.axis=sec_axis(~./scaleFactor, name="Phase, deg."))+
scale_x_log10()+
theme_bw()+
ggtitle(plotTitle)+
labs(x="Frequency, Hz")+
theme(
plot.title = element_text(hjust = 0.5),
axis.title.y.left=element_text(color="red"),
axis.text.y.left =element_text(color="red")
)
Выводит приведенный ниже график, показывающий красные данные и черные данные на том же графике, но красные данные в линейной шкале.
Это близко, но мне действительно нужно, чтобы красные данные были в масштабе журнала. Эта функция доступна даже на ggplot2? Другие графические библиотеки также будут полезны.
Отредактировано, чтобы быть более воспроизводимым.