我有一個包含所有數值的數據。 我將如何在圖形生成器中繪製混合堆疊和並排條形圖的混合。 我想繪製我的圖表,如所附的兩張圖片所示。
第一個圖像僅顯示混合堆疊和並排條形圖中每個變量的百分比,但在第二個圖像中也顯示變量的值。
如果您能分享詳細的過程或JSL腳本,那將會有很大的幫助。
以下是示例數據。
| 學生 |
數學物理總計 |
數學 |
物理 |
羽毛球足球總計 |
羽毛球 |
足球 |
| A |
50 |
30 |
20 |
40 |
10 |
30 |
| 乙 |
40 |
25 |
15 |
20 |
10 |
10 |
| C |
30 |
15 |
15 |
50 |
40 |
10 |
謝謝 :)


你好@拉賈特
我認為我們只需做一點工作就可以非常接近您想要的東西:
我已附上重構後的數據表和保存的腳本,以便您自行查找。 這就是我所做的:
1. 堆疊你的原始表格:
Current Data Table() << Stack(
columns( :Maths, :Physics, :Badminton, :Football ),
Source Label Column( "Label" ), Stacked Data Column( "Data" )
);

這給出了以下內容:
2. 我們需要一個變量來劃分活動分組(數學/物理與羽毛球/足球),因此我將添加一個新列“分組”,並迭代“AABBAABB”等。您可以通過任何方式執行此操作就像,你只需要一個名義變量。 這是 Sequence() 的另一種方法:
New Column("Group", Numeric, "Nominal", Formula(Sequence(1, 2, 1, 2)) );

3.圖形生成器:
我調整了一些設置以使圖表看起來像我所做的那樣,但以下是基本步驟和一個簡短的視頻:
腳步:
- 將“數據”列拖至Y角色
- 同時將兩個“總計”列拖動到 Y 放置區域的頂部
- 關閉點,然後打開 Bar 元素
- 將下部圖表的條形樣式“數據”更改為“堆疊”
- 將“標籤”拖至疊加角色
- 在頂部欄的控件下,關閉“變量”下的覆蓋角色
- 將“組”拖至X軸角色
- 關閉控制面板中上圖的“組”變量
- 將“學生”拖至 X 組角色
- 將下圖的“摘要統計”更改為“因子百分比”(我忽略在視頻中顯示這一點)
- 將每個條形的標籤更改為“按值標籤”
這給出:
從這裡你可以做很多事情。 對於我在開始時顯示的最終圖表,我還進行了一些添加,例如更改條形寬度(右鍵單擊圖表>自定義),刪除X 軸標籤(雙擊軸並取消選中標籤),還更改了圖表間距(紅色三角形>圖形間距)。 這是最終圖表的腳本:
Graph Builder(
Size( 799, 566 ),
Show Control Panel( 0 ),
Graph Spacing( 2 ),
Variables(
X( :Group ),
Y( :Total_Math_Physics ),
Y( :Total_Badminton_Football, Position( 1 ) ),
Y( :Data ),
Group X( :Student ),
Overlay( :Label )
),
Elements(
Position( 1, 1 ),
Bar( Y( 1 ), Y( 2 ), Overlay( 0 ), Legend( 5 ), Label( "Label by Value" ) )
),
Elements(
Position( 1, 2 ),
Bar(
X,
Y,
Legend( 4 ),
Bar Style( "Stacked" ),
Summary Statistic( "% of Factor" ),
Label( "Label by Value" )
)
),
SendToReport(
Dispatch(
{},
"Group",
ScaleBox,
{Min( -1.167069008972 ), Max( 2.147362067225 ), Inc( 1 ),
Minor Ticks( 0 ), Label Row( Show Major Labels( 0 ) )}
),
Dispatch(
{},
"Total_Math_Physics",
ScaleBox,
{Min( 0.23109243697479 ), Max( 55 ), Inc( 10 ), Minor Ticks( 1 )}
),
Dispatch(
{},
"Data",
ScaleBox,
{Min( 0 ), Max( 1.1209749344709 ), Inc( 0.2 ), Minor Ticks( 0 )}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Example" )} ),
Dispatch( {}, "X title", TextEditBox, {Set Text( "" )} ),
Dispatch(
{},
"Graph Builder",
FrameBox,
{DispatchSeg( BarSeg( 1 ), Set Width Proportion( 0.6 ) )}
),
Dispatch(
{},
"Graph Builder",
FrameBox( 2 ),
{DispatchSeg( BarSeg( 1 ), Set Width Proportion( 1 ) )}
),
Dispatch(
{},
"Graph Builder",
FrameBox( 3 ),
{DispatchSeg( BarSeg( 1 ), Set Width Proportion( 0.6 ) )}
),
Dispatch(
{},
"Graph Builder",
FrameBox( 4 ),
{DispatchSeg( BarSeg( 1 ), Set Width Proportion( 1 ) )}
),
Dispatch(
{},
"Graph Builder",
FrameBox( 5 ),
{DispatchSeg( BarSeg( 1 ), Set Width Proportion( 0.6 ) )}
),
Dispatch(
{},
"Graph Builder",
FrameBox( 6 ),
{DispatchSeg( BarSeg( 1 ), Set Width Proportion( 1 ) )}
)
)
);
我希望這有幫助!
@朱利安
你好@拉賈特
你的問題很好,但我不認為 JMP 可以即時做到這一點。
請參閱隨附的我的文件,其中包含用於生成輸出的腳本。我的方法更多的是一種低技術含量的解決方案。我添加了列來計算每個主題的份額和(假)行以允許並排效應。完成此操作後,我修改了圖形屬性中的一些內容以完成幻覺。
請告訴我們這是否是正確的方向。
羅恩
