如何使用 ggplot2- 权重不断变化的函数输出来可视化这些数据?
How to do I visualize this data using ggplot2- output of a function with changing weights?
下面的输出是一个权重不断变化的函数:
将它们视为年龄、身高和类别,其中年龄、身高和类别的权重总和始终为 1。table 包含函数输出图,其中年龄和身高的权重从 0 变为 10,并且第三,即类别是(1-年龄-身高)。
左上角[1,1]的结果是给权重函数的输出:age=0,height=0,category=1
右上角[1,11]的结果是给权重函数的输出:age=0,height=1,category=0
左下角[11,1]的结果是给权重函数的输出:age=1,height=0,category=0
所有不可能为 NULL 的值,其中 w(age) + w(height) > 1
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
[1,] 1662 3571 3571 3571 3571 3571 7891 8027 8045 8055 8080
[2,] 3842 3594 3613 3611 3611 7957 8017 8031 8059 8081 NULL
[3,] 3842 3667 3594 3594 3613 7103 8038 8054 8085 NULL NULL
[4,] 3842 3678 3594 3594 7056 7124 8053 8078 NULL NULL NULL
[5,] 3842 3678 3667 3606 7102 8053 8078 NULL NULL NULL NULL
[6,] 3842 3678 3668 7100 7139 8078 NULL NULL NULL NULL NULL
[7,] 3842 3698 3702 7124 7164 NULL NULL NULL NULL NULL NULL
[8,] 3842 3698 7102 7164 NULL NULL NULL NULL NULL NULL NULL
[9,] 3842 3783 7164 NULL NULL NULL NULL NULL NULL NULL NULL
[10,] 3842 7174 NULL NULL NULL NULL NULL NULL NULL NULL NULL
[11,] 3968 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL `
我如何使用 ggplot2 在 3-D 图形上绘制它? (我刚开始使用 ggplot2)
正如 MrFlick 指出的那样,ggplots 不做 3-D。为此,带有热图的三元图就足够了。
使用 ggtern 的解决方案:
首先将数据重新格式化为数据框'df',其中包含年龄、身高和类别的值以及函数'rec'
ggtern(df, aes(age, height, cat)) + geom_point(aes(colour=rec)) +
scale_color_gradient(low='green', high='red')
下面的输出是一个权重不断变化的函数:
将它们视为年龄、身高和类别,其中年龄、身高和类别的权重总和始终为 1。table 包含函数输出图,其中年龄和身高的权重从 0 变为 10,并且第三,即类别是(1-年龄-身高)。
左上角[1,1]的结果是给权重函数的输出:age=0,height=0,category=1
右上角[1,11]的结果是给权重函数的输出:age=0,height=1,category=0
左下角[11,1]的结果是给权重函数的输出:age=1,height=0,category=0
所有不可能为 NULL 的值,其中 w(age) + w(height) > 1
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
[1,] 1662 3571 3571 3571 3571 3571 7891 8027 8045 8055 8080
[2,] 3842 3594 3613 3611 3611 7957 8017 8031 8059 8081 NULL
[3,] 3842 3667 3594 3594 3613 7103 8038 8054 8085 NULL NULL
[4,] 3842 3678 3594 3594 7056 7124 8053 8078 NULL NULL NULL
[5,] 3842 3678 3667 3606 7102 8053 8078 NULL NULL NULL NULL
[6,] 3842 3678 3668 7100 7139 8078 NULL NULL NULL NULL NULL
[7,] 3842 3698 3702 7124 7164 NULL NULL NULL NULL NULL NULL
[8,] 3842 3698 7102 7164 NULL NULL NULL NULL NULL NULL NULL
[9,] 3842 3783 7164 NULL NULL NULL NULL NULL NULL NULL NULL
[10,] 3842 7174 NULL NULL NULL NULL NULL NULL NULL NULL NULL
[11,] 3968 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL `
我如何使用 ggplot2 在 3-D 图形上绘制它? (我刚开始使用 ggplot2)
正如 MrFlick 指出的那样,ggplots 不做 3-D。为此,带有热图的三元图就足够了。
使用 ggtern 的解决方案:
首先将数据重新格式化为数据框'df',其中包含年龄、身高和类别的值以及函数'rec'
ggtern(df, aes(age, height, cat)) + geom_point(aes(colour=rec)) +
scale_color_gradient(low='green', high='red')