<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />问候。
我正在尝试创建一个甘特图,其中程序可能根据任何标准在段内具有不同的填充颜色。 我编造了一些虚拟数据仅供讨论之用,并附上了一个可视化示例。 假设我们有三个项目,随着时间的推移,人员配置需求会发生变化(每个项目的时间不同),我希望条形填充颜色代表低、中或高人员配置信息。
| 标头 1 | 时间1 | 人员配备1 | 时间2 | 人员配备2 | 时间3 | 人员配置3 |
|---|
| 项目1 | 一月至二月 | 低的 | 3月-8月 | 高的 | 九月至十二月 | 医学 |
| 项目2 | 一月至六月 | 医学 | 7月至10月 | 低的 | 11 月至 12 月 | 医学 |
| 项目3 | 一月至四月 | 医学 | 五月至七月 | 医学 | 七月至十二月 | 高的 |
我找到并使用了甘特图插件,但这并不适合我的需求,尽管我确实使用它作为使用图形生成器为我做一些事情的启动点。 我已经让它工作了,所以我可以使用日期根据时间为特定项目创建不同的条形图。 但现在填充颜色是时间段的函数,因此时间 1 的所有时间都是相同的,时间 2 的所有时间都是相同的,时间 3 的所有时间都是相同的。
我可以在填充颜色的图例模型属性中使用条件语句吗? 1、2、3 分别是低、中、高,模型参考 5 与时间 1 界限相关联,本质上类似于……
Legend Model( 5, Level Name( 0, "Time 1" ), Properties( 0, if (Staffing 1 = 1,{Fill Color( 57 )}, Staffing 1 = 2, {Fill Color( 47)}, Staffing 1 = 3, {Fill Color( 37)}, ) )理想情况下,我还想为里程碑添加标记,但我不知道这是否可行。 还有其他工具可能可以更轻松地完成此操作,但有人在向他们展示 Excel 示例后询问 JMP,所以我在这里。
谢谢。
我给您的插图展示了如何使用甘特图插件,最终数据表必须大致看起来像生成您想要的复杂性图表。如果您支持这一点,对于初始表的样子,我可以设想一个数据表,其中的列指示您想要的规格,然后让 jsl 接受该输入,并在幕后生成一个数据表和一个图形生成器脚本来生成输出。
我不相信有一种解决方案可以将数据表与静态图形生成器脚本相结合来产生所需的结果。需要一些 jsl 来解释您的输入并生成新的数据表和图形生成器脚本来满足您的需求。
吉姆,
感谢您的回复。 我已经有一些东西可以达到这个效果。
我的问题有点不同。 因此,使用甘特图示例,我想根据另一列的函数来改变完整的填充颜色。 本质上,我有一列将条形的大小定义为时间的函数,另一列定义了颜色。 因此,表示完整的深蓝色将由其他数据驱动 - 可能类似于人员配备水平 - 其中需求可能是绿色,设计可能是黄色和红色,用于完整和不完整部分,等等。这就是我遇到的问题。
谢谢。
简单的答案是肯定的:

然而,它使图形生成器和数据表变得更加复杂。如果使用甘特图插件作为结构模型,则必须添加一个新列来包含所需的每种不同类型的填充图案的新结束数据。然后,必须修改图形生成器图表,以添加一个新的条形图,其中为正确的起始列设置了范围到为新类别创建的数据表中的新列。下面是图形生成器的代码,只有一种新的填充模式类型。我更改了填充图案,但它也可以很容易地成为具有不同颜色的纯色图案。
Graph Builder(
Size( 907, 626 ),
Show Control Panel( 0 ),
Variables(
X( :Start Date ),
X( :donedate, Position( 1 ) ),
X( :End Date, Position( 1 ) ),
X( :Extended Date, Position( 1 ) ),
Y( :Task, Order By( :Start Date, Descending, Order Statistic( "Mean" ) ) )
),
Elements(
Bar( X( 1 ), X( 3 ), Y, Legend( 32 ), Bar Style( "Range" ) ),
Bar( X( 1 ), X( 2 ), Y, Legend( 20 ), Bar Style( "Range" ) ),
Bar( X( 1 ), X( 4 ), Y, Legend( 44 ), Bar Style( "Range" ) )
),
SendToReport(
Dispatch(
{},
"Start Date",
ScaleBox,
{Min( 3442521600 ), Max( 3487017600 ), Interval( "Month" ), Inc( 1 ),
Minor Ticks( 0 ), Label Row( Label Orientation( "Angled" ) )}
),
Dispatch(
{},
"Task",
ScaleBox,
{Label Row(
{Show Major Ticks( 0 ), Set Font( "Tahoma" ), Set Font Size( 11 )}
)}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
32,
Level Name( 0, "Incomplete" ),
Properties( 0, {Fill Color( 77 )} )
), Legend Model(
20,
Level Name( 0, "Complete" ),
Properties( 0, {Fill Color( 53 )} )
), Legend Model(
44,
Properties( 0, {Fill Color( 74 ), Fill Pattern( "hatch heavy" )} )
)}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Gantt Chart" )} ),
Dispatch( {}, "X title", TextEditBox, {Set Text( "Date" )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "Tasks" )} )
)
);
这是我必须进行修改的数据表,以允许新的条形类别。请注意名为“扩展日期”的新列。在我建议的模型中,必须添加其他列,例如“扩展日期”。
