If you log-transformed your outcome variable and then fit a regression model, just exponentiate the predictions to plot it on the original scale.
In many cases, it's better to use some nonlinear functions such as polynomials or splines on the originale scale, as @hejseb mentioned. This post might be of interest.
Here is an example in R using the mtcars
dataset. The variable used here were chosen totally arbitrarily, just for illustration purposes.
First, we plot Log(Miles/Gallon) vs. Displacement. This looks approximately linear.

After fitting a linear regression model with the log-transformed Miles/Gallon, the prediction intervals on the log-scale look like this:

Exponentiating the prediction intervals, we finally get this graphic on the original scale:

This ensures that the prediction intervals never go below 0.
We could also fit a quadratic model on the original scale and plot the prediction intervals.

Using a quadratic fit on the original scale, we cannot be sure that the fit and prediction intervals stay above 0.
Here is the R-code that I used to generate the figures.
#------------------------------------------------------------------------------------------------------------------------------
# Load data
#------------------------------------------------------------------------------------------------------------------------------
data(mtcars)
#------------------------------------------------------------------------------------------------------------------------------
# Scatterplot with log-transformation
#------------------------------------------------------------------------------------------------------------------------------
plot(log(mpg)~disp, data = mtcars, las = 1, pch = 16, xlab = "Displacement", ylab = "Log(Miles/Gallon)")
#------------------------------------------------------------------------------------------------------------------------------
# Linear regression with log-transformation
#------------------------------------------------------------------------------------------------------------------------------
log.mod <- lm(log(mpg)~disp, data = mtcars)
#------------------------------------------------------------------------------------------------------------------------------
# Prediction intervals
#------------------------------------------------------------------------------------------------------------------------------
newframe <- data.frame(disp = seq(min(mtcars$disp), max(mtcars$disp), length = 1000))
pred <- predict(log.mod, newdata = newframe, interval = "prediction")
#------------------------------------------------------------------------------------------------------------------------------
# Plot prediction intervals on log scale
#------------------------------------------------------------------------------------------------------------------------------
plot(log(mpg)~disp
, data = mtcars
, ylim = c(2, 4)
, las = 1
, pch = 16
, main = "Log scale"
, xlab = "Displacement", ylab = "Log(Miles/Gallon)")
lines(pred[,"fit"]~newframe$disp, col = "steelblue", lwd = 2)
lines(pred[,"lwr"]~newframe$disp, lty = 2)
lines(pred[,"upr"]~newframe$disp, lty = 2)
#------------------------------------------------------------------------------------------------------------------------------
# Plot prediction intervals on original scale
#------------------------------------------------------------------------------------------------------------------------------
plot(mpg~disp
, data = mtcars
, ylim = c(8, 38)
, las = 1
, pch = 16
, main = "Original scale"
, xlab = "Displacement", ylab = "Miles/Gallon")
lines(exp(pred[,"fit"])~newframe$disp, col = "steelblue", lwd = 2)
lines(exp(pred[,"lwr"])~newframe$disp, lty = 2)
lines(exp(pred[,"upr"])~newframe$disp, lty = 2)
#------------------------------------------------------------------------------------------------------------------------------
# Quadratic regression on original scale
#------------------------------------------------------------------------------------------------------------------------------
quad.lm <- lm(mpg~poly(disp, 2), data = mtcars)
#------------------------------------------------------------------------------------------------------------------------------
# Prediction intervals
#------------------------------------------------------------------------------------------------------------------------------
newframe <- data.frame(disp = seq(min(mtcars$disp), max(mtcars$disp), length = 1000))
pred <- predict(quad.lm, newdata = newframe, interval = "prediction")
#------------------------------------------------------------------------------------------------------------------------------
# Plot prediction intervals on log scale
#------------------------------------------------------------------------------------------------------------------------------
plot(mpg~disp
, data = mtcars
, ylim = c(7, 36)
, las = 1
, pch = 16
, main = "Original scale"
, xlab = "Displacement", ylab = "Miles/Gallon")
lines(pred[,"fit"]~newframe$disp, col = "steelblue", lwd = 2)
lines(pred[,"lwr"]~newframe$disp, lty = 2)
lines(pred[,"upr"]~newframe$disp, lty = 2)