[vtkusers] R: R: Plot XY
edoardo.belletti at alice.it
edoardo.belletti at alice.it
Sat Apr 3 18:02:33 EDT 2010
Hi
Thank you ahead for the interest.
I used the code that you post me for my project and it works fine but now I have a question:
How can I change the color of the x and y labels?
Because I set the background of the blot to white with: renderer->SetBackground (1, 1, 1);
but now xlabel and ylabel are white and so I want to set these to black; how can I do this?
Thank you very much
Edoardo Belletti
-----Messaggio originale-----
Da: Darshan Pai [mailto:darshanpai at gmail.com]
Inviato: dom 28/03/2010 23.11
A: edoardo.belletti at alice.it
Cc: David Doria; VTK_forum
Oggetto: Re: [vtkusers] R: Plot XY
You can directly use vtkXYPlotActor to get a plot of 2 arrays .
Here is a simple example to plot a array .
vtkSmartPointer<vtkXYPlotActor> plot =
vtkSmartPointer<vtkXYPlotActor>::New();
plot->ExchangeAxesOff();
plot->SetLabelFormat( "%g" );
plot->SetXTitle( "Level" );
plot->SetYTitle( "Frequency" );
plot->SetXValuesToIndex();
for ( i = 0 ; i < 2 ; i++)
{
vtkSmartPointer<vtkDoubleArray> array_s =
vtkSmartPointer<vtkDoubleArray>::New();
vtkSmartPointer<vtkFieldData> field =
vtkSmartPointer<vtkFieldData>::New();
vtkSmartPointer<vtkDataObject> data =
vtkSmartPointer<vtkDataObject>::New();
for (int b = 0; b < 30; b++) /// Assuming an array of 30 elements
{
hfile>>val; /// My input is a file .
array_s->InsertValue(b,val);
}
field->AddArray(array_s);
data->SetFieldData(field);
plot->AddDataObjectInput(data);
}
plot->SetPlotColor(0,1,0,0);
plot->SetPlotColor(1,0,1,0);
vtkSmartPointer<vtkRenderer> renderer =
vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor(plot);
renderer->AddActor(rightplot);
renderer->AddActor(leftplot);
vtkSmartPointer<vtkRenderWindow> renderWindow =
vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer( renderer );
renderWindow->SetSize(1000,1000);
vtkSmartPointer<vtkRenderWindowInteractor> interactor =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
interactor->SetRenderWindow( renderWindow );
// Initialize the event loop and then start it
interactor->Initialize();
interactor->Start();
On Sun, Mar 28, 2010 at 2:32 PM, <edoardo.belletti at alice.it> wrote:
> I don't have the latests CVS version of VTK but VTK 5.4.2 that I have
> download from www.vtk.org
> and so the code that you suggest me it doesn't work because it don't found
> these files:
> vtkChartXY, vtkPlot.h.h, vtkContextView.h, vtkContextScene.h
> There is some way to simply have a XYPlot of two vectors with my VTK
> release?
>
> Thank you
> Edoardo
>
> -----Messaggio originale-----
> Da: daviddoria at gmail.com per conto di David Doria
> Inviato: dom 28/03/2010 20.10
> A: edoardo.belletti at alice.it
> Cc: VTK_forum
> Oggetto: Re: [vtkusers] Plot XY
>
>
> On Sun, Mar 28, 2010 at 2:03 PM, <edoardo.belletti at alice.it> wrote:
>
> > Hello,
> >
> > I am new to VTK so please sorry if this problem is obvious.
> >
> > I am trying to use the XYPlotActor object to create a simply plot of one
> > variable against another.
> >
> > I have found a piece of code in a past discussion and I have tried to run
> > it but the problem is that it doesn't found the
> > vtkFloatScalars.h file
> > is there anything in particular that I should add in the CMakeLists.txt
> to
> > include this library?
> > the code is this:
> >
> > int main()
> > {
> > int dataSize = 4;
> > float x[4] = { 0, 1.5, 6.2, 10.2 };
> > float y[4] = {8, 9.3, 10.9, 27};
> > vtkRectilinearGrid *curve1 = vtkRectilinearGrid::New();
> > curve1->SetDimensions(dataSize,1,1);
> > vtkFloatScalars *dataValues = vtkFloatScalars::New();
> > vtkFloatScalars *xCoords = vtkFloatScalars::New();
> >
> > int w;
> > for(w=0; w<dataSize; w++)
> > {
> > dataValues->InsertScalar(w, y[w]);
> > xCoords->InsertScalar(w, x[w]);
> > }
> >
> > curve1->SetXCoordinates(xCoords);
> > curve1->GetPointData()->SetScalars(dataValues);
> >
> > vtkXYPlotActor *theXYPlot = vtkXYPlotActor::New();
> > theXYPlot->SetXValuesToArcLength();
> > theXYPlot->AddInput(curve1);
> > return 0;
> > }
> >
> > Thank you very much for the interest
> > Edoardo
> >
> >
> > There is no file in the current CVS called vtkFloatScalars.h, so I'm
> assuming that is very old code.
>
> Marcus Hanwell has been working hard on new charting functionality - there
> is a simple example here:
> http://www.vtk.org/Wiki/VTK_Examples_Chart_XY
>
> You must have the latests CVS version of VTK built to use this new feature.
> <http://www.vtk.org/Wiki/VTK_Examples_Chart_XY>
> Thanks,
>
> David
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20100404/a8760b1e/attachment.htm>
More information about the vtkusers
mailing list