我将数据保存为.csv12列的文件.第2至11列(标记为F1, F2, ..., F11)features.Column one包含或label这些功能.goodbad
我想绘制boxplot的所有这些功能11对label,而是通过单独good或bad.到目前为止我的代码是:
qplot(Label, F1, data=testData, geom = "boxplot", fill=Label,
binwidth=0.5, main="Test") + xlab("Label") + ylab("Features")
Run Code Online (Sandbox Code Playgroud)
然而,这只能说明F1反对label.
我的问题是:如何显示F2, F3, ..., F11对label在一个图表一些dodge position?我已将这些特征标准化,因此它们在[0 1]范围内具有相同的比例.
测试数据可以在这里找到.我手工绘制了一些东西来解释这个问题(见下文).

有没有办法在matplotlib中对boxplots进行分组?
假设我们有三个组"A","B"和"C",我们想为每个组创建"苹果"和"橙子"的箱线图.如果无法直接进行分组,我们可以创建所有六种组合并将它们并排放置.可视化分组的最简单方法是什么?我试图避免将刻度标签设置为"A + apples"之类的东西,因为我的场景涉及的名称比"A"长得多.
我有一些问题箱线图中matplotlib:
质疑.我在下面用Q1,Q2和Q3突出显示的标记代表什么?我相信Q1是最大值,Q3是异常值,但Q2是什么?

问题B matplotlib如何识别异常值?(即它如何知道它们不是真实的max和min价值观?)
我试图使用Seaborn按照示例获得分组的boxplot
我可以让上面的例子工作,但行:
tips = sns.load_dataset("tips")
Run Code Online (Sandbox Code Playgroud)
根本没有解释.我找到了tips.csv文件,但我似乎无法找到有关load_dataset具体做什么的充分文档.我试图创建自己的csv并加载它,但无济于事.我还重命名了提示文件,它仍然有效...
我的问题是:
load_dataset实际上在哪里寻找文件?我可以将它用于我自己的箱形图吗?
编辑:我设法让我自己的箱形图使用我自己的DataFrame,但我仍然想知道是否load_dataset用于除了神秘的教程示例之外的任何东西.
我无法找到箱线图的线端点代表的描述.
例如,这里是线条结束的上方和下方的点值.

(我意识到盒子的顶部和底部分别是第25和第75百分位,中心线是第50个).我假设,因为线上方和下方有点,它们不代表最大/最小值.
我有以下问题:我想在箱线图上可视化离散和连续变量,其中后者具有一些极高的值.这使得箱形图无意义(图表中的点甚至"主体"太小),这就是为什么我想以log10的比例显示它.我知道我可以忽略可视化中的极值,但我并不打算这样做.
让我们看一个钻石数据的简单例子:
m <- ggplot(diamonds, aes(y = price, x = color))
Run Code Online (Sandbox Code Playgroud)

问题在这里并不严重,但我希望你能想象为什么我希望以log10的比例看到这些值.我们来试试吧:
m + geom_boxplot() + coord_trans(y = "log10")
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,y轴是log10缩放并且看起来很好但是x轴存在问题,这使得绘图非常奇怪.
问题不会发生scale_log,但这不是我的选择,因为我不能这样使用自定义格式化程序.例如:
m + geom_boxplot() + scale_y_log10()
Run Code Online (Sandbox Code Playgroud)

我的问题:有没有人知道在y轴上用log10刻度绘制boxplot的解决方案,标签可以用formatter这个线程中的函数自由格式化?
根据答案和评论编辑问题以帮助回答者:
我真正追求的是:一个log10转换轴(y)没有科学标签.我想将它标记为美元(formatter=dollar)或任何自定义格式.
如果我尝试@ hadley的建议,我会收到以下警告:
> m + geom_boxplot() + scale_y_log10(formatter=dollar)
Warning messages:
1: In max(x) : no non-missing arguments to max; returning -Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
3: In max(x) : no non-missing arguments to max; …Run Code Online (Sandbox Code Playgroud) 对我的问题可能有一个非常简单的解决方案,但我无法在网上找到满意的答案.
使用以下命令,我能够创建以下boxplot图并将其与各个数据点重叠:
ggplot(data = MYdata, aes(x = Age, y = Richness)) +
geom_boxplot(aes(group=Age)) +
geom_point(aes(color = Age))
Run Code Online (Sandbox Code Playgroud)
有几件事我想添加/更改:
1.使用从左到右的6种不同颜色更改每个箱图的线条颜色和/或填充(取决于"年龄"):
c("#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00")
Run Code Online (Sandbox Code Playgroud)
我试过了
ggplot(data = MYdata, aes(Age, Richness)) +
geom_boxplot(aes(group=Age)) +
scale_colour_manual(values = c("#E69F00", "#56B4E9", "#009E73",
"#F0E442", "#0072B2", "#D55E00"))
Run Code Online (Sandbox Code Playgroud)
但它会导致"Continuous value supplied to discrete scale"错误.
2.使用从左到右的6种不同颜色更改每个数据点的颜色(取决于"年龄"):
c("#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00")
Run Code Online (Sandbox Code Playgroud)
我试过了:
ggplot(data = MYdata, aes(Age, Richness)) +
geom_boxplot(aes(group=Age)) +
geom_point(aes(color = Age)) +
scale_colour_manual(values = c("#E69F00", "#56B4E9", "#009E73",
"#F0E442", "#0072B2", "#D55E00")) …Run Code Online (Sandbox Code Playgroud) 将星星放在条形图或箱线图上以显示一组或两组之间的显着性水平(p值)是很常见的,下面是几个例子:



星数由p值定义,例如,p值<0.001时可以放3颗星,p值<0.01时可以放2颗星等等(虽然这会从一篇文章变为另一篇文章).
我的问题:如何生成类似的图表?根据显着性水平自动放置星星的方法非常受欢迎.
我想用R来制作一系列按中值排序的箱形图.假设我执行:
boxplot(cost ~ type)
Run Code Online (Sandbox Code Playgroud)
这将给我一些箱形图,成本显示在y轴上,类型类别在x轴上可见:
----- -----
| |
[ ] |
| [ ]
| |
----- -----
A B
Run Code Online (Sandbox Code Playgroud)
但是,我想要的是从最高到最低中值排序的箱线图.我怀疑的是,我需要做的是更改类型(A或B)的标签,以数字方式指示哪个是最低和最高中值,但我想知道是否有更聪明的方法来解决问题.