What parasonic wants is to be able to set the axis to arbitrary range without affecting how the plot is rendered.
That's exacly what I'm trying to do.
What is the reason for binding a plot item to a coordinate system, when you don't want to have it rendered according to it ?

So for example if plot item is build from points which x range is 0-100 how to set the axis to be 50-392 (or 0.001 to 0.107 etc) without affecting how the plot is displayed (zoomer has to work in that setup as well)?
You can always overload the draw method of a plot item and manipulate the canvas maps.

Qt Code:
  1. class YourCurve: public QwtPlotCurve // could be any other plot item too
  2. {
  3. YourCurve()
  4. {
  5. setItemAttribute( QwtPlotItem::AutoScale, false );
  6. }
  7.  
  8. virtual void draw( QPainter *painter,
  9. const QwtScaleMap &xMap, const QwtScaleMap &yMap,
  10. const QRectF &canvasRect ) const
  11. {
  12. QwtScaleMap yourXMap;
  13. yourXMap.setPaintInterval( xMap.p1(), xMap.p2() ); // widget coordinates
  14. yourXMap.setScaleInterval( ... );
  15.  
  16. QwtScaleMap yourYMap;
  17. yourYMap.setPaintInterval( yMap.p1(), yMap.p2() ); // widget coordinates
  18. yourYMap.setScaleInterval( ... );
  19.  
  20. QwtPlotCurve::draw( painter, yourXMap, yourYMap, canvasRect );
  21. }
  22. };
To copy to clipboard, switch view to plain text mode 

HTH,
Uwe