ウォルフラム言語でのMathematica。
data = {{"Banana", "Water", "Rice"},
{"Rice", "Water"},
{"Bread", "Banana", "Juice"}};
ペアごとのカウントを取得します。
counts = Sort /@ Flatten[Subsets[#, {2}] & /@ data, 1] // Tally
{{{"Banana", "Water"}, 1}, {{"Banana", "Rice"}, 1},
{{"Rice", "Water"}, 2}, {{"Banana", "Bread"}, 1},
{{"Bread", "Juice"}, 1}, {{"Banana", "Juice"}, 1}}
名前付きティックのインデックスを取得します。
indices = Thread[# -> Range[Length@#]] &@Sort@DeleteDuplicates@Flatten[data]
{"Banana" -> 1, "Bread" -> 2, "Juice" -> 3, "Rice" -> 4, "Water" -> 5}
をMatrixPlot
使用してプロットしSparseArray
ます。も使用できますArrayPlot
。
MatrixPlot[
SparseArray[Rule @@@ counts /. indices, ConstantArray[Length@indices, 2]],
FrameTicks -> With[{t = {#2, #1} & @@@ indices}, {{t, None}, {t, None}}],
PlotLegends -> Automatic
]
上三角になっていることに注意してください。
お役に立てれば。