IronPython Script to handle 2 details-on-demand plots which are made from any of the 4 data tables:
I have a scatter plot for which I have written a script.. The script allows the end user to display the scatter plot from any of the 8 options..
This scatter plot comes from one datatable always... It has two more details on demand plots i.e. line chart and bar chart.
The data table for these line chart and bar chart depends on what the user has selected from the scatter plot drop-down script..
I am confused how to add data-table part in the script because currently, my script has this structure:
If user select A from drop down list,:
the scatter plot x-axis should be this
the scatter plot y-axis should be that
else if
If user selects B from drop down list:
..
..
I am not sure how can I put data table part from the details on demand plot because if user selected A, then line-chart/bar-chart comes from data table A, and if user selects B, then linechart barchart comes from B data table..
I believe you're missing this script, though you'll need to duplicate lines 7-9 for each of your visualizations; make a script parameter (in this case Named "tablePlot") to identify the Visualization in question. The value returned from your DropDownList should be the exact name of your data table; if it isn't, you're going to have to do additional logic (ie, case/if statement) to switch the variable "tblName" to the correct value.
from Spotfire.Dxp.Application.Visuals import *
myDocument=Application.Document
tblName = Document.Properties["DropDownListPropertyName"]
dt=tablePlot.As[VisualContent]()
newtbl = Document.Data.Tables.Item[tblName]
dt.Data.DataTableReference=newtbl
You said you've already got the axes sorted out, but as a more general note for other users, if your columns are the same in each data table, or if you're using a separate property to identify the Category Axis etc, this will be the end of it. If not, you're going to get an alert telling you the old column name doesn't exist, so you'll have to set those, too.
Related
On a data/line plot inside Excel, I'd like to color my data points depending on a value inside the table on the same row as the data value, however from a different column.
It's best explained with a picture:
It's essentially a line chart type with the lines removed, and the data points set to bullet type and given an increased radius for visibility. The x-axis denotes the calendar date as dd.mm, and the y-axis contains the values.
Now the Excel table also contains a row called "Time of Day", which can be mo(rning), mi(dday), ev(ening).
Can something like this be done with a line chart, or do I need to use a different type of chart, or is this generally not possible in Excel (which I doubt)?
Excel in use is: Microsoft Excel for Mac, Version 16.51 (21071101).
Here's a way to achieve this:
What I've done is:
Added three columns for the times of day (columns B, C and D). These can be hidden.
Added this formula in B2: =IF($E2=B$1,$F2,NA()) which should then be dragged to cover the next two columns and then down to cover every day.
Selected A1:D11 (it'll be more than 11 on your version)
Went to Insert > Chart > Insert Line or Area Chart > Line With Markers
At this point you have a line chart with three series (mo, mi, ev). The lines can be removed, which just leaves the markers. You can format each series separately, with different colours, shapes, sizes, etc.
As a special bonus, this automatically gives you a legend that explains the colours.
I'm sorry for the vague title, did not know how to title it otherwise. So I've got a huge set of data, about 7k lines. Basically, a table with 2 columns and 7000 lines. When I select the data + labels and go to Insert -> Scatter chart, only 1 point is shown on the graph, and the title of the graph is actually the last value. I've tried multiple fixes and no luck. Any ideeas?
Here's what it looks like:
chart image
Here's the spreadsheet if you need it (sorry it's on mega.nz, it's the only site that I know of that doesn't show popups etc.): the spreadsheet
I changed the graph type to the line and then returned it to what it was in the beginning it worked for me properly.
I need to create a graph that properly represents the profit-maximizing model of aircraft in different scenarios. I apologize in advance for my lack of understanding in what exactly to call it. As mentioned, I have found the type of graph that would best represent this, but cannot figure out how to code/create it. I have tried using Excel and Think-Cell (and either one of them may work, I just haven't figured out how) and haven't had much luck. The image below represents the ideal graph, linked here:
Does anyone have any idea how to best go about this? Thanks in advance.
Edit: The data I have now looks like this, linked here:
You need to use the data to generate a Stacked Column chart.
Here is how I set up my own example data (before you posted your own data format):
Next, select all rows and only the first four columns of the data (42R x 5C) and Insert-->Charts-->2D Column-->Stacked Column. You should get a chart like this:
Then change the vertical axis options to show Bounds Min=1.0, Max=4.0, Units Major=0.2, Minor=0.1.
Next, select any of the data series in the chart and format the Series Options for Series Overlap=100%, Gap Width=0%.
After that, I deleted the Title and Legend, set the Line Style for both Axis to Solid Fill, Black Color. Then I changed the data series colors to be close to your example. Lastly, make sure the chart is selected (the border is highlighted with the squares at the corners), then Insert a TextBox over your data and type "B747-200P2F" and manually place it over the correct data area. Repeat this for the other series and you get this:
Finally, we'll work on the Jet Fuel price line. This series will be added to the chart, then plotted on the secondary axis and it's chart type changed to Line.
To start, select only the Jet Fuel price column (F1:F42) and then copy that range into the clipboard. Then, make sure the chart is selected and, from the Home ribbon, select Paste Special. Use the default settings, or choose Add cells as New Series, Values (Y) in Columns, check Series Names in First Row, uncheck Categories (X Labels) in First Column, then click OK. (Not much will seem different on the chart yet!)
The next steps are important to take in order (at least for me). Select only the "Jet Fuel Price" series and change the Series Options to Plot on Secondary Axis. Then change the axis options to set the range from 1.0 to 4.0 and set labels to None. Just so we're tracking, here's what I have so far:
The (almost) final step is to select only the "Jet Fuel Price" series again, then right click it and choose Change Series Chart Type. Make sure you select the Combo chart type and make the selections for each of the series chart types as indicated in this picture:
Now (finally!) just add another textbox, put in your label and set the text color to red.
My problem is as follows:
The user inputs two numbers between 2 and 25, these numbers are used to create a grid. Every point on the grid has (x,y) coordinates. Based on the amount of points the user chose, my excel sheet is filled up with up to 25x25 (x,y) coordinates.
Example: A 6x7 grid is chosen by the user, the table is filled with 42 (x,y) coordinates and all other values in the table are set to "".
Now I want to use a scatterplot with lines connecting each array to plot the data.
Problem 1: If I only select the 6x7 part of the table that has values in it and create the scatterplot the result is correct. Until the user specifies a different grid, for example 8x9, then the graph is obviously missing two rows and two columns of input data.
Problem 2: If I select the entire 25x25 part of the table, including all the "" values, the graph axes get messed up. The y-axis works properly, but the x-axis shows sequential values (0-7) instead of the x-coordinates.
Problem 3: If I replace all the "" values in the table to 0 or NaN and plot the entire table the axes are correct, but the lines between the scatter data get messed up.
Question:
Is there a way to automatically change the input data for the plot, or is there a way to correctly display the values on the x-axis if I select all the data?
Not sure this will work in your case, but it's worth a try, especially since no one's addressed your post in 3+ hours. I've had success with this approach: 1) charting the largest data set, 2) copying the resulting chart, and 3) trimming the data it draws from to produce all smaller data sets.
To get this to work takes a lot of thought in laying out that largest data set so that all the other plots follow as needed. To illustrate, I've somewhat mimicked your data and in the animated gif I show largest data set, plus 2 others produced by copying it. Then I demonstrate how to make the second one, including the rescaling required to make all plots scaled equally. Notice that I've arranged things so that only one set of x-values feeds all the series. If you can do this, it makes working with the Excel's interface much easier.
After wrestling with it all night I came to the following solution:
Instead of setting all the empty cells to "" or zero the cells should be be set to #N/A (not available). The graph properly ignores the #N/A cells exactly like I want it to and updates when values are entered into them.
I have a combo chart in excel, with clustered bar charts (for a box plot) and lines. I am trying to display the bar charts/box plot in front of the lines, but am able to do so.
I tried moving the bar charts to the top and/or bottom in "select data" - but no change.
Any suggestions?
Am using Excel 2013.
Thanks!
I believe it is not possible. You can change display ordering of Excel series by:
changing the plot order of the series (this is what you have done in the "Select data" dialog),
changing the axis on which the series are displayed (series on secondary axis are displayed over the series on the primary axis).
But from my experiments no combination of changes makes the lines appear behind the columns.
There are two workarounds that might or might not help you:
you can create two charts on top of each other and put the chart with the lines behind the one with the columns,
or you could create a line chart (most likely you would need scatter chart), that is not a single line but a series of segments where the columns are not shown (this one is not that easy to do)
What are the lines for? If you are just trying to identify some zones along the value axis, you could instead use stacked areas, which would give a banded appearance. Areas are always drawn behind bars and columns, while lines are always drawn in front of lines and columns.