complex-upset icon indicating copy to clipboard operation
complex-upset copied to clipboard

How can I reduce the file size of the .eps UpSet figure?

Open bagcik1lumc opened this issue 2 years ago • 0 comments

Objective Reduce the file size of the .eps UpSet figure produced in R.

Code

upset(
  M1_BinaryMatrix,
  colnames(M1_BinaryMatrix),
  sort_intersections_by='ratio',
  intersections='all',
  min_degree=2,
  
  set_sizes=(
    upset_set_size(position='right')
    + geom_text(aes(label=paste0(round((..count../nrow(M1_BinaryMatrix))*100), '%')), hjust=1.1, stat='count', color='white')
    + expand_limits(y=1000)
    + ylab("")
    + theme(axis.text.x = element_blank())
  ),
  #
  base_annotations=list(
    'Intersection ratio'=intersection_ratio(text_mapping=aes(label=!!upset_text_percentage()))
#    'Intersection ratio'= intersection_ratio(text_mapping=aes(label=paste0(round(
#      !!get_size_mode('inclusive_intersection')/!!nrow(head(M1_BinaryMatrix, 1000)) * 100
#    ), '%')))
    + ylab("") 
    + theme(axis.text.y=element_blank())
  ),
  #
  name="",
  wrap=TRUE,
  stripes=c(alpha('grey90', 0.45), alpha('white', 0.3)),
  matrix = intersection_matrix(    
    geom=geom_point(
      shape='square',
      size=4
    ),
    segment=geom_segment(
      linetype='solid'
    ), 
    outline_color=list(
      active='darkorange3',
      inactive='grey70'
    )
  )
) + labs(title = "", caption = "") 
ggsave(
  "ups.eps",
  plot = last_plot(),
  device = 'eps',
  # scale = 1
  # width = NA,
  # height = NA,
  # units = c("in", "cm", "mm", "px"),
  dpi = 300,
  limitsize = TRUE
  # bg="transparent"
)

Context (required) ComplexUpset version: 1.3.3

R version 4.2.2 (2022-10-31 ucrt)
R version 4.2.2 (2022-10-31 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19044)

bagcik1lumc avatar Jan 08 '23 17:01 bagcik1lumc