<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" )} )
)
);
這是我必須進行修改的資料表,以允許新的條形類別。請注意名為“擴充日期”的新欄位。在我建議的模型中,必須添加其他列,例如“擴展日期”。
