This should work, using a replacement rule to replace every `y` value with a scaled version, and then making sure that you have a scaled tick mark function as well plot = Plot[{x^x, Exp[x], x!}, {x, 1, 5}, PlotStyle -> {Blue, Red, Green}] Show[plot /. Line[x__] :> (({#1, Log@#2} & @@@ x) // Line), PlotRange -> All, Ticks -> {Automatic, Charting`ScaledTicks[{Log, Exp}]}] ![Mathematica graphics](https://i.sstatic.net/5FAAg.png) Or, with OP's example more explicitly listplot = ListPlot[Transpose[{#^#, Exp[#], #!} & /@ Range[1, 5]], PlotStyle -> {Darker@Blue, Darker@Red, Darker@Green}]; plot = Plot[{x^x, Exp[x], x!}, {x, 1, 5}, PlotStyle -> {Blue, Red, Green}, PlotRange -> All]; combined = Show[plot, listplot] Show[combined /. {Line[x__] :> (({#1, Log@#2} & @@@ x) // Line), Point[x__] :> (({#1, Log@#2} & @@@ x) // Point)}, PlotRange -> All, Ticks -> {Automatic, Charting`ScaledTicks[{Log, Exp}]}] ![Mathematica graphics](https://i.sstatic.net/lJWGT.png)