你好,
我正在通过脚本分析一些数据。具体来说,我有三个变量,即 A、B 和 C,它们代表图片的三个属性。为了根据这三个属性绘制图片,我习惯使用 Row State 属性为不同的行着色:
对于每一行(dt,
颜色() = RGB 颜色(:A,:B,:C));
这样,每个点/行都有与三个变量的值 1:1 匹配的 RGB 颜色。
我尝试使用 Graph Builder 绘制图片,并在其 Color 选项中输入此特定的 RGB 颜色代码,因为我在后续代码中清除了 Row States。具体来说,col 和 row 是我图片的坐标,RGB 是我使用以下公式创建的新列:Color Of() = RGB Color(:A, :B, :C);
地图 = dt << 图形生成器(
显示控制面板( 0 ),
变量(X(:col),Y(:row),颜色(:RGB)),
元素(点(X,Y,图例(4)))
);
问题在于 GB 将 RGB 列视为值的列,而不是解码颜色的列。
有什么想法可以将我习惯的 RGB 颜色代码转换为 GB 的颜色主题吗?
谢谢!
您可能不需要新的颜色主题。 Graph Builder 支持彩色行状态,因此您只需更改此行状态。 下面是一个针对 RstPulse 绘制 RunPulse 的示例。 颜色行状态首先根据其他三个标准化 (0,1) 变量设置。
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
For Each Row(
Row State() = Color State( {
:Oxy / Col Max( :Oxy ),
:Runtime / Col Max( :Runtime ),
:Weight / Col Max( :Weight )
} );
);
dt << Graph Builder(
Size( 528, 450 ),
Show Control Panel( 0 ),
Variables( X( :MaxPulse ), Y( :RunPulse ) ),
Elements( Points( X, Y, Legend( 3 ) ) )
);那是个笨蛋。 我尝试构建一个新的颜色主题,但效果不佳。
我制作了一张包含 1000 个随机 RGB 值的表格。 (脚本在底部)
RGB 值被转换为 JMP 颜色。
然后我删除了公式,并按 JMP 颜色对列进行排序。
并添加了一个公式来生成一些文本以用于新的颜色主题。
我使用现有的颜色主题之一作为模板。 从脚本窗口运行:Get Preferences();并选择其中一种颜色主题,例如这个。
Add Color Theme(
{"Reverse Jet", 2051, {{127, 0, 0}, {255, 0, 0}, {255, 127, 0}, {255, 255, 0}, {127, 255,
127}, {0, 255, 255}, {0, 127, 255}, {0, 0, 255}, {0, 0, 127}, Missing( "Black" )}, 1, 1}
),
我给新主题起了一个新名称,并用表格中的文本替换了三个项目列表的集合。
不知道开头的2051是干什么的,也不知道最后的“1、1”是干什么的。 所以我只保留了那些。
返回运行“获取首选项”的脚本窗口,删除脚本,复制整个日志并将其粘贴回窗口。
删除开头的注释并将第一个参数从“Preferences”更改为Set Preferences。
最后添加您的新颜色主题。 确保它遵循首选项、逗号和最后一个括号内的格式……之类的东西。
不过,在编辑之前保存您的首选项脚本可能是个好主意,这样您以后就可以取回它。
运行设置首选项脚本后,新颜色主题应作为一个选项显示在图形构建器中,无需重新启动 JMP。
请注意,这个新的颜色主题很大,看起来很有趣但不太正确,它使图形构建器非常慢。
New Table( "maker",
Add Rows( 1000 ),
New Script(
"Scatterplot 3D",
Scatterplot 3D(
Y( :R, :G, :B ),
Frame3D(
Set Grab Handles( 0 ),
Set Rotation( 127.28221594942, -1.35536871654718, 146.077602393409 ),
Set Marker Scale( 3.8125 )
)
)
),
New Column( "R",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Random Integer( 0, 255 ) ),
Set Selected
),
New Column( "G",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Random Integer( 0, 255 ) ),
Set Selected
),
New Column( "B",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Random Integer( 0, 255 ) ),
Set Selected
),
New Column( "Column 4",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Color Of() = RGB Color( :R, :G, :B ) ),
Set Selected
)
)