3-axis chart (Z-axis) possible with TeeChart?? Any tutorials to be found on subject? - vcl

I am trying to create a 'TRENDS' chart.
For that, I am trying to create a 3-D bar chart with left axis (Y-axis) being a number scale (like 0-1000), Bottom axis (X-axis) to be 7 days (Mon-Sun), and depth axis (Z-axis) to be weeks. My report data spans back to 11/2/12 and has data (a single number) for each day. So, basically the graph should have a scale of 0-1000 on the left, 7 labels along the horizontal (Mon-Sun), and then approx 36 rows deep (Z-axis) containing the data (bar for EACH day) with a 'row' label for that week (eg. xx/xx/13 to xx/xx/13).
Step by step instructions for TeeCharts are scarce to start AND I have found nothing on the Net describing how to do a Z-axis (3rd axis). Am I trying to use the TeeChart software to create a chart it is NOT capable of delivering??
Example 3d layout on page 12: http://www.nrdc.org/air/pollution/benchmarking/2002/benchmark2002_pt2.pdf
PLEASE, any input would be welcome. Thanks.
Mike

Since you posted the same question at the Embarcadero Forums, I assume you are using TeeChart VCL/FMX. Having this in mind, you can achieve what you request with TeeChart Pro version. You can see the differences between TeeChart versions in this feature matrix.
To plot this kind of charts you should use Tower series. You'll find examples at the "All Features\Welcome !\Chart styles\Extended\Tower" section in the new features demo included with both evaluation and registered versions. Fully functional evaluation version can be downloaded here.
Also, bear in mind that 3D series like Tower series need to be populated as I explained here.

Related

implementing an independent color bar in timeseries plot

i am new to this so please be tolerant for mistakes i am making. i'll try to describe my problem as good as i can. feel free to give me advises on how to improve my description of the problem.
my goal: i do have this timeseries plot about different kinds of air quality values for 3 different locations. one graph for each pollutant.
in addition i do have a xarray dataarray with different variables from which i only use the one called 'kind'.
i was thinking of a horizontal bar parallelly attached to each graph inside the same plot, just indicating 3 different colors which depend on the value of the array 'kind' ('A', 'B', 'NaN') for every single timestamp.
for the timeseries i use matplotlib.
i am grateful for any help provided!
edit: this is what i'm looking for.. a horizontal bar linked to the same xaxis so it gives me additional info on my time series values. the additional information comes from another file (xarray.dataarray)

Phase Measurement 3d visualize when unwrapped phase function

Recently I have tried the phase-shifting-profilometry method to get a 3D surface.
Input Images
Object's Phase Function
Everything went smoothly until I found out that it becomes a Diagonal plane/ Diagonal surface when visualizing the surface due to the unwrapped phase algorithm.
3D object Visualize
I want to ask whether there is any method to make the surface horizontal (like the XY plane).
Sorry that I can not post images here because "I need at least 10 reputation to post images", so Images will be on the link below.
1: https://i.stack.imgur.com/R8BMt.gif
2: https://i.stack.imgur.com/QueKS.png
3: https://i.stack.imgur.com/6jysU.png
Thank you very much!
Ju Lee,
what you are actually plotting is the phase map which can be used to calculate the 3D object. The easiest way (which is only an approximation) to get a depth map is to calculate the phase difference to the phase map of a reference plane (without an object on it):
depth(x,y) ~ a*(phase_map(x,y) - phase_map_reference(x,y)),
where a is a scaling factor you have to determine experimentally. This "easy" procedure is roughly adapted from Takeda's famous 1983 paper: https://doi.org/10.1364/AO.22.003977.
See formula 22 therein for small phase differences.
A more accurate procedure giving the full 3D pointcloud directly from the phase can be found in Zhang's 2006 paper https://doi.org/10.1364/OE.14.009120.
But therefore, you have to calibrate the camera-projector system and calculate an "absolute" phase_map. This typically needs a lot of work, but references therefore are linked in Zhang's paper.
Have fun!

How can we compare two plots?

Suppose we have two similar plots.
Plot1 (already published in a paper)
Plot2 (calculated by using any software)
My question is: How can I compare my calculated plot (pdf, png, jpeg, etc) with the plot in the paper.
Thank You
To the best of my knowledge, there is currently no software that would enable you to re-convert images into their nominal data.
However, it's not that hard to write a piece of code that does it.
Here are the steps (at a high level):
extract the images from the pdf document (use iText)
separate out those images that look like a plot. You can train a neural network to do this, or you can simply look for images that contain a lot of white (assuming that's the background) and have some straight lines in black (assuming that's the foreground). Or do this step manually.
Once you have the image(s), extract axis information. I'll assume a simple lineplot. Extract the minimal x and y value, and the maximum x and y value.
separate out the colors of the lines in your lineplot, and get their exact pixel coordinates. Then, using the axis information, scale them back to their original datapoint.
apply some kind of smoothing algorithm. E.g. Savitzky-Golay
If you ever use this data in another paper, please mention that you gathered this data by approximation of their graph. Make it clear you did not use the original source data.
Reading material:
https://developers.itextpdf.com/examples
https://en.wikipedia.org/wiki/Savitzky%E2%80%93Golay_filter
https://docs.oracle.com/javase/tutorial/2d/images/index.html

determine camera rotation and translation matrix from essential matrix

I am trying to extract rotation matrix and translation matrix from essential matrix.
I took these answers as reference:
Correct way to extract Translation from Essential Matrix through SVD
Extract Translation and Rotation from Fundamental Matrix
Now I've done the above steps applying SVD to essential matrix, but here comes the problem. According to my understanding about this subject, both R and T has two answers, which leads to 4 possible solutions of [R|T]. However only one of the solutions would fit in the physical situation.
My question is how can I determine which one of the 4 solutions is the correct one?
I am just a beginner on studying camera position. So if possible, please make the answer be as clear (but simple) as possible. Any suggestion would be appreciated, thanks.
The simplest is testing a point 3D position using the possible solution, that is, a reconstructed point will be in front of both cameras in only one of the possible 4 solutions.
So assuming one camera matrix is P = [I|0], you have 4 options for the other camera, but only one of the pairs will place such point in front them.
More details in Hartley and Zisserman's multiple view geometry (page 259)
If you can use Opencv (version 3.0+), you count with a function called "recoverPose", this function will do that job for you.
Ref: OpenCV documentation, http://docs.opencv.org/trunk/modules/calib3d/doc/calib3d.html

how to extract data from plot produced by easy.py in libsvm-3.17

I just downloaded libsvm-3.17 abt two weeks ago. I tried heart_scale (dataset provided in the libsvm-3.17 package) with easy.py. An image or plot is produced (from gnuplot) to illustrate the best c and best gamma. I cannot post the image here because I am new here and do not have enough reputation.
I would like to ask from the many colors curves in the plot, how to extract from the plot that the best log2(c)=11 (which gives c=2048) and the best log2(gamma)=-13 (which gives gamma = 0.0001220703125).
Thank you very much.
the chosen parameters are reported by easy.py (cannot run it now, but you will find them). the plot is just a visual aid to manually verify the parameter neighborhood. with some experience you can interpret the diagram. without experience simply trust easy.py