Hi Thomas,

Is it possible that the range of your color map starts at (0, 0)? In this case QCustomPlot realizes that this is not displayable on a log scale, and fails gracefully by just painting it a couple of hundred pixels outside the axis range. For example, this mechanism allows it to plot a sine which has positive and negative half-waves on a logarithmic y-Axis, while keeping the line continuous and as natural as possible. I agree that in your case with a QColorMap the result is not as graceful indeed, but I'm not sure what the correct way to handle the situation would be. The input is simply incorrect, there is no zero on a logarithmic plot.

A side note: I recommend using the logarithmic axis tickers if you switch the scale to logarithmic. (See QCPAxisTickerLog)

In general The usage of QColorMap with a log axis is not quite as foolproof as with normal curves and graphs. Also see the note of warning of the setData method. For performance reasons and to reduce the complexity of QColorMap, it does not transform the bins logarithmically. This makes sense for most applications, since data that is inherently suited for logarithmic display, is usually also acquired in a logarithmic fashion (i.e. more sparse at higher key intervals), and thus an equally spaced binning in display-space is adequate. Compare this to the alternative: A QColorMap would quickly grow beyond any computer's working memory if it did space its bins according to the coordinate axes of a log-log-plot. Further, drawing a QColorMap with log-spaced bins would require a true pixel-by-pixel rendering in display-space and couldn't use regular graphics scaling routines for speedup.