【お知らせ】この部分は英語原文のみでの提供となります。何卒ご了承ください。
2.2.4.8.39 DataPlot::SetModifier
Contents
Description
It sets a modifier, like to specify that a symbol size or color in a scatter plot, comes from another column.
Syntax
int SetModifier(int nDesig, Column &col)
Parameters
- nDesig
- [input]the property for which the modifier is specified:
- COLDESIG_SIZE, symbol size
- COLDESIG_COLOR, symbol color from a colormap
- COLDESIG_VECTOR_ANGLE, vector plot angle column
- COLDESIG_VECTOR_MAGNITUDE, vector plot magnitude column
- COLDESIG_VECTOR_XEND, flow vector x-coordinate of the arrow end
- COLDESIG_VECTOR_XEND, flow vector y-coordinate of the arrow end
- COLDESIG_PLOTLABEL_FORM, label
- see PlotDesignationEx in OC_const.h for more options.
- col
- [input]the column to be used as the modifier from which the dataplot will draw values for the modified property.
Return
Returns the previous modifier index, or 0 if previously the property was not a modifier value, or an error if the return value < -13000.
Examples
EX1
// have a worksheet active and import Samples\Graphing\group.dat into it. void DataPlot_SetModifier_ex1() { Worksheet wks = Project.ActiveLayer(); if( !wks ) { out_str("Pls activate worksheet with group.dat data"); return; } GraphPage gp; gp.Create("bubble"); GraphLayer gl = Project.ActiveLayer(); DataRange dr; dr.Add(wks, 0, "X"); dr.Add(wks, 1, "Y"); int nPlot = gl.AddPlot(dr, IDM_PLOT_SCATTER); DataPlot dp = gl.DataPlots(0); Column col = wks.Columns(1); dp.SetModifier(COLDESIG_SIZE, col); gl.Rescale(); }
EX2
// create an XY scatter plot with colormap from other columns // have a worksheet that has at least three columns active before execution void DataPlot_SetModifier_ex2() { Worksheet wks = Project.ActiveLayer(); DataRange dr; dr.Add(wks, 0, "X"); dr.Add(wks, 1, "Y"); GraphPage gp; gp.Create("Origin"); GraphLayer gl = gp.Layers(); gl.AddPlot(dr, IDM_PLOT_SCATTER); DataPlot dp = gl.DataPlots(0); if( !dp ) return; Column col(wks, 2); dp.SetModifier(COLDESIG_COLOR, col); gl.Rescale(); }
EX3
// assum a worksheet has 3 columns // make a scatter plot with first 2 columns // and use the 3rd column as plot label void DataPlot_SetModifier_ex3() { Worksheet wks = Project.ActiveLayer(); if(!wks) return; Column col(wks, 2); if(!col) return; DataRange dr; dr.Add(wks, 0, "X"); dr.Add(wks, 1, "Y"); GraphPage gp; gp.Create("Origin"); GraphLayer gl = gp.Layers(); gl.AddPlot(dr, IDM_PLOT_SCATTER); gl.Rescale(); DataPlot dp = gl.DataPlots(0); if(!dp) return; dp.SetModifier(COLDESIG_PLOTLABEL_FORM, col); vector<int> vnDesigs; vector<string> saNames; dp.GetModifiers(vnDesigs, saNames); vector<uint> vecIndex; if(vnDesigs.Find(vecIndex, COLDESIG_PLOTLABEL_FORM) > 0) { printf("label form = %s\n", saNames[ vecIndex[0] ]); } }
Remark
See Also
Header to Include
origin.h