2022-11-11
Maintenance:
- Revert
size
→linewidth
migration for now to retain compatibility with older ggplot2 versions - Use
inherits
to satisfy CRAN checks
2022-11-11
Enhancements:
- Accept
tibble
s inarrange_venn
, thanks @maximilian-heeg! #159
Maintenance:
- Pass
width=0.9
to workaround change of behaviour in ggplot2 3.4 overextending the width of bars highlighted withupset_query
- Fix deprecation warnings for ggplot 3.4
size
tolinewidth
transition
2021-12-07
Bug fixes:
- Makes zero-degree intersection size for
intersections='all'
mode follow the same behavior as the bar plot #144
2021-12-06
Bug fixes:
- Enable displaying degree 0 intersection with
group_by='sets'
. The old behavior of not displaying degree zero intersection can be achieved by usingmin_degree=1
argument #143
2021-08-04
Fixes:
- use
guide="none"
instead ofguide=FALSE
to silence ggplot2 deprecation warning, thanks @MilouArts! #129
2021-06-06
Changes:
- sets on intersection matrix can now be highlighted using
upset_query()
#115
Bug fixes:
- alleviate visual glitch of
geom_segment
in intersections matrix showing up with an outline #113 - fixed aesthetics assigned by
upset_query()
which was sometimes not behaving as expected #123
2021-04-25
Bug fixes:
- fixed metadata order in data frame returned by
arrange_venn()
function #116
2021-04-03
Bug fixes:
- [critical] fixed display order of labels when using
encode_sets=TRUE
#110 - encoding of set names will now properly work around name conflicts #110
Major improvements:
- manually specified intersections will now display empty intersections and non-exclusive intersections correctly #109
- manually specified intersections do not require modifying the
intersect
argument to obtain the intended result any longer #109 - stripes size and other attributes of underlying
geom_segment()
can now be customised with new function:upset_stripes()
#111 - stripes colour and other attributes can now be mapped to data #111
Minor improvements:
- data.table can be passed instead of data.frame (the conversion will be performed automatically) #105
- warning will be shown if a vector is provided instead of a list to the
intersections
argument #109 - when
intersections
argument includes sets not specified inintersect
, a warning will be issued and execution will proceed as if those were included inintersect
#109 - when incorrect names of sets are passed to
intersections
argument, those will be highlighted and plotting will be aborted #109
2021-01-13
New features:
- it is now possible to select specific intersections passing
intersections = list('Drama', c('Comedy', 'Romance'))
- it is now possible to define custom order of intersections passing
intersections = list('Drama', c('Comedy', 'Romance'))
andsort_intersections = FALSE
2021-01-05
Bug fixes:
- Major performance and memory use improvements, especially when using
intersections = 'all'
- The
max_combinations_n
fail-safe was replaced by a more usefulmax_combinations_datapoints_n
with more precise error message - The atypical use case of filtering with
max_degree = 0
is now accepted again - Fix tests using all the data (effectively union mode) rather than chosen mode data only
2021-01-04
Bug fixes:
- Fixed regression of non-observed sets causing "no vector columns were selected" caused by fix addressing #90
- Reduced length of file names for some test doppelgangers
2021-01-04
Bug fixes:
- Filtering by degree when using non-default mode and
intersections='all'
now correctly accounts for all observations (#89) - Empty sets/groups are now correctly removed when filtering with a non-default mode (#90)
- Missing values are now converted to FALSE and a warning is issued to the user rather than causing an undefined behavior (#88)
2020-12-30
Changes:
- Lists with computed sizes are now returned in a single list called
sizes
byupset_data()
- Set sizes are now not filtered by default when selecting intersections by
min_*
ormax_*
criteria. Passfilter_intersections=TRUE
toupset_set_sizes()
to restore the previous behaviour - Union sizes are now calculated before data trimming which provides more accurate ratio estimates
- Added examples for Venn diagrams which are now covered by automated tests to protect against regressions
- Removed
upset_data()
intersected
member to avoid needless duplication of the data frames; accesswith_sizes
instead aest
argument ofintersection_size()
and related functions was renamed tomapping
and is now the first positional argumentmin_max_early
argument is no longer required and was removed
New features:
- Annotations can now access data for any of the available modes by adding
upset_mode()
layer. By default the annotations are given data corresponding to the same mode as the mode of the passed in theupset()
call. - It is now possible to display all intersections, even if those are not present in the data by passing
intersections='all'
toupset()
; this is only feasible for <20 sets, but filtering by degree can allow to explore a subset of all intersections when there are many more sets; this is only useful for modes different from the default exclusive intersection. - If filtering leads to no intersections, an informative error is shown (#80)
Bug fixes:
- Modes passed to
upset()
are now also used for sorting and trimming - Size calculation for modes was optimised for better performance
- User-added layers are now shown on top of
intersection_size()
andintersection_union()
- Column names are no longer modified when supplying to
ggplot2
allowing to easily use them in annotations (#82)
2020-12-20
Changes:
- Pass metadata to the
ggplot2
when arranging Venn diagram, allowing to map elements aesthetics details
2020-12-20
New features:
- Intersection modes were formalised with the default remaining
exclusive_intersection
(aliasdistinct
); additional modes are:inclusive_intersection
(aliasintersect
),inclusive_union
andexclusive_union
; please read the relevant part of the documentation for details (#78). - Simple Venn diagrams (for two or three sets) can now be constructed using same input (binary presence data frame) using pseudo geoms:
geom_venn_circle()
,geom_venn_label_region()
,geom_venn_label_set()
,geom_venn_region()
and scalesscale_color_venn_mix()
andscale_fill_venn_mix()
; while developed mostly for the documentation needs, it provides unique capability of highlighting relevant regions of the Venn diagram and placing observations within appropriate regions (which allows to demonstrate their attributes with appropriate aesthetics mapping).
Changes:
- Breaking: union size for "empty" intersection is now equal to its size
Bug fixes:
- Layers added to
upset_set_size()
andintersection_matrix()
will now always go on top (avoiding geoms being hidden underneath) - Declare layer in NAMESPACE to allow basic usage without loading
ggplot2
upset_query()
will now throw an informative error when the user forgets to pass any aesthetics (#79)
2020-12-06
- Breaking:
geom
ofupset_set_size()
now accepts geom object (e.g.geom_bar()
) rather than a function (e.g.geom_bar
) - Breaking:
upset_set_size()
no longer accepts variadic arguments (...
); please modify thegeom
instead - Additional geoms added to
upset_set_size()
are now added on top of stripes, thus properly visible - Data available for
upset_set_size()
now includes all metadata of the original data frame, enabling to annotate the bars, e.g.:upset_set_size(geom=geom_bar(aes(fill=mpaa, x=group)))
- Intersections can now be sorted by multiple criteria, e.g. first by degree and then by cardinality:
sort_intersections_by=c('degree', 'cardinality')
(#47) - Breaking:
dot_size
argument was removed. Usematrix=intersection_matrix(geom=geom_point(size=5))
instead - Intersection matrix can now be customised, including the points (e.g. changing shape to squares), segments (e.g. using dotted line) and outlines (changing color) allowing to create Example 5.4:
2020-12-06
- Significant performance improvements, especially for large datasets and
group_by
(#12) - Set sizes can now be moved to the right side of the plot using
upset_set_size(position='right')
guides='over'
can be now passed toupset()
to place the legends over the set sizes
2020-12-05
- Address CRAN review comments
- Add CITATION file
- Add examples of the use in academic papers to README
- Compress images in documentation for faster loading
2020-12-04
- Prepare for CRAN submission
- Fix various typos
- Add more examples to documentation (#44, #38)
2020-12-04
- Fix degree calculation for empty intersections (#73)
2020-12-04
- Refactor
upset_set_size()
to enable addition of ggplot2 objects with+
. - Add missing documentation for
aes_percentage()
2020-12-04
- Move to GitHub CI
- Use warnings rather than
print()
(#53) - Eliminate unwanted warnings and messages
2020-12-03
Including versions 0.6.0 - 0.6.2.
- Fix display of stripes in set size component
- Refactor annotations of intersections to allow adding ggplot2 objects with
+
(#67, #27, #61) - Add
n_intersections
parameter (#70)
2020-11-08
- Implement
group_by
argument (#66)
2020-09-21
- Multiple queries now work correctly (#60)
2020-09-11
- Fix
min_degree
not working with intersections of size one (#48)
2020-09-11
- Refactor stripes implementation, allow stripes transparency (#54)
2020-06-18
- Fix the counts not showing up on highlighted bars (#43)
- Sorting (descending/ascending/none) by degree/cardinality/ratio (#18, #13, #10)
- Selective themes customization (#13)
- Set size customization including rotations, log, ticks and more (#11)
- Added roxygen-based documentation and reference