标签: mosaic-plot

Statsmodels镶嵌图ValueError:无法将float NaN转换为整数

我有一个简单的pandas DataFrame,我想为此创建一个马赛克图.这是我的代码:

import pandas as pd
from statsmodels.graphics.mosaicplot import mosaic 

mydata = pd.DataFrame({'id2': {64: 'Angelica', 
                               65: 'DXW_UID', 66: 'casuid01', 
                               67: 'casuid01', 68: 'EC93_uid', 
                               69: 'EC93_uid', 70: 'EC93_uid', 
                               60: 'DXW_UID',  61: 'AtmosFox', 
                               62: 'DXW_UID', 63: 'DXW_UID'}, 
                       'id1': {64: 'TGP', 
                               65: 'Retention01', 66: 'default',
                               67: 'default', 68: 'Musa_EC_9_3', 
                               69: 'Musa_EC_9_3', 70: 'Musa_EC_9_3', 
                               60: 'default', 61: 'default', 
                               62: 'default', 63: 'default'}})

mydata
            id1       id2
60      default   DXW_UID
61      default  AtmosFox
62      default   DXW_UID
63      default   DXW_UID
64          TGP  Angelica
65  Retention01   DXW_UID
66 …
Run Code Online (Sandbox Code Playgroud)

matplotlib pandas statsmodels mosaic-plot

5
推荐指数
1
解决办法
2065
查看次数

是否可以从 vcd 包中编辑马赛克图的轴标签?

data("HairEyeColor")
mosaic(HairEyeColor, shade = TRUE)
Run Code Online (Sandbox Code Playgroud)

结果图

是否有我可以使用的参数来更改上面结果图边缘的标签?比如我想把“男”改成“M”,“女”改成“F”,避免文字侵占,并在标题标签上做一些注释。

我在包的帮助页面中找不到任何关于编辑轴标签的信息。

r mosaic-plot

4
推荐指数
1
解决办法
4722
查看次数

R vcd ::马赛克重叠标签

我正在生成一个镶嵌图vcd::mosaic.但是我给出的因素的文本很长(切割它们不是一种选择,并且在很多情况下,介绍\n似乎令人生畏),所以文本中有重叠,我无法强制标签垂直于轴.

这就是我正在尝试的:

a <- data.frame(x=sample(LETTERS[1:4],16,replace = TRUE), 
                y=rep(paste("very long label here at number", 1:4, paste=" "), 4))
mosaic(y ~ x, data= a, las= 2)
Run Code Online (Sandbox Code Playgroud)

但这就是我得到的: 在此输入图像描述

我也tryed par(las= 2)par(las= 3),但这些都不是能够迫使他们垂直对齐(las= 2用效果很好mosaicplot,不过,这就像vcd::mosaic覆盖las无论是作为一个给定的参数或作为默认设置par.我也有打par(mar),但标签足够长,可以欺骗这种解决方法.

我该怎么做才能获得可读标签?

##########编辑添加:##########

我也试过这个,但无济于事:

mosaic(y ~ x, data= a, labeling_list= list(gp_text= gpar(las= 2)))
Run Code Online (Sandbox Code Playgroud)

mosaic(y ~ x, data= a, labeling_list= list(rot_labels = c(0,90,0,0)))
  # Actually placed the "90" in the 4 positions …
Run Code Online (Sandbox Code Playgroud)

plot r mosaic-plot vcd

2
推荐指数
1
解决办法
2388
查看次数

如何增加 Matplotlib 图的大小?

我用 Matplotlib 制作了一个马赛克图,但是由于大量的数据点,该图被压缩了,单词相互重叠。我想增加情节的大小。我试过:

plt.figure(figsize=()) 
Run Code Online (Sandbox Code Playgroud)

它没有用。

这是我的代码:

from statsmodels.graphics.mosaicplot import mosaic
import matplotlib.pyplot as plt

plt.figure(figsize=(200,10)) #does not work
plt.rcParams['font.size'] = 10.0
mosaic(plants_sub, ['Symbol', 'Family'], gap=0.1);
Run Code Online (Sandbox Code Playgroud)

输出:

在此处输入图片说明

python matplotlib mosaic-plot

2
推荐指数
1
解决办法
3592
查看次数

如何让 xlab 和 ylab 在 vcd 包中的马赛克图中工作

出于某种原因,我无法让 xlab 和 ylab 在 vcd 包中的马赛克图中工作。

我试过:

mosaic(~Sex +Survived, 
       data=Titanic,
       shade=T, 
       legend=T, 
       main="myplot", 
       labeling_args=list(abbreviate = c( Sex=2, Survived=1)) ,
       ylab="Gender", 
       xlab="survival")
Run Code Online (Sandbox Code Playgroud)

这分别标记轴“性别”和“幸存”。

mosaic(margin.table(Titanic, c(2,4)),
       ylab="Gender", 
       xlab="survival",
       shade=T, legend=T, 
       main="myplot", 
       labeling_args=list(abbreviate = c( Sex=2, Survived=1)))
Run Code Online (Sandbox Code Playgroud)

这也分别标记了“性别”和“幸存”轴。

mosaicplot(margin.table(Titanic, c(2,4)),
           shade=T, 
           legend=T, 
           main="myplot", 
           labeling_args=list(abbreviate = c(Sex=2, Survived=1)), 
           ylab="Gender", 
           xlab="survival")
Run Code Online (Sandbox Code Playgroud)

这正确地标记了轴,但忽略了“labeling_args”

有没有人有什么建议?

mosaic-plot vcd

1
推荐指数
1
解决办法
1015
查看次数

保存马赛克图的优雅方法?

我的大部分图都是用 ggplot2 制作的,ggsave 命令用一行将它们保存在它们应该在的位置。但是,使用 vcd 包的马赛克图最适合我的数据。问题:我没有收到包含以下代码的错误消息。R 说它已经保存了我的情节,但被保存的情节是我创建的最后一个 ggplot 图,而不是我想要的马赛克图。当然我可以在 RStudio 中手动保存,但我很确定有更好的方法。有任何想法吗?

Onlyaround <- subset(prepData, preposition=="around")
attach(Onlyaround)
mytable <- table(exp_group, session, result)
ftable(mytable)
mosaic(mytable, shade=TRUE, legend=TRUE, main = "Around by Group")
margin.table(mytable)
ggsave("pics/around_mosaic.png")
detach(Onlyaround) 
Run Code Online (Sandbox Code Playgroud)

r mosaic-plot

0
推荐指数
1
解决办法
735
查看次数

标签 统计

mosaic-plot ×6

r ×3

matplotlib ×2

vcd ×2

pandas ×1

plot ×1

python ×1

statsmodels ×1