Thanks for the input in the comments; here's what I eventually came up with (including tick placement):
fSpace[min_, max_, steps_, f_: Identity] :=
InverseFunction[f] /@
Range[f@min, f@max, (f@max - f@min)/(steps - 1)]
GetMajorTicks[min_, max_, count_, f_: Identity] :=
fSpace[min, max, count, f];
GetMinorTicks[min_, max_, majorCount_, minorCount_, f_: Identity] :=
Flatten[Table[
Drop[Drop[
fSpace[x,
x ((f@max - f@min)/(majorCount - 1) // InverseFunction[f]),
minorCount + 2], 1], -1], {x,
Drop[GetMajorTicks[min, max, majorCount, f], -1]}]];
xMin = 1/4;
xMax = 4;
xMajorTicks = 5;
xMinorTicks = 3;
f = Log;
ContourPlot[
Sin[2 \[Pi] y] InverseFunction[f]@x, {x, f@xMin, f@xMax}, {y, -1, 1},
FrameTicks -> {{Automatic,
None}, {({f@#, # // N} & /@
GetMajorTicks[xMin, xMax, xMajorTicks, f])~
Join~({f@#, Null, {0.005, 0}} & /@
GetMinorTicks[xMin, xMax, xMajorTicks, xMinorTicks, f]),
None}}]

If this can be cleaned up or improved in any way, I'd love to hear!
DensityPlot[f[x,y], {x, Xmin, Xmax}, {y, Ymin, Ymax}]
toDensityPlot[f[x, E^y],{x, Xmin, Xmax}, {y, Log@Ymin, Log@Ymax}]
. Adding ticks alongy
might take you some time but it shouldn't be hard (I've assumed that's the direction you want to log plot) $\endgroup$ScalingFunctions
works withDensityPlot
... That might help. $\endgroup$DensityPlot[Sin[x] Sin[y], {x, 1, 10}, {y, 1, 10}, ScalingFunctions -> "Log"]
) $\endgroup$