Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
8a4d665
Debug camelCase to snake_case object names
auzaheta Jul 27, 2026
16ec3d0
feat(goldfish): rebind the diagnostic plots to the classes goldfish e…
auzaheta Jul 29, 2026
e4180b9
feat(goldfish): plot methods for the test_gof and test_time classes
auzaheta Jul 31, 2026
f380b64
feat(goldfish): plot method for the diagnose_onset class
auzaheta Jul 31, 2026
00038f3
docs: NEWS for the phase-2 goldfish diagnostic plots
auzaheta Jul 31, 2026
5b376f6
feat(goldfish): one-call overview of a fitted goldfish model
auzaheta Jul 31, 2026
406a353
fix(plot): one panel per process for the flavoured diagnostic tables
auzaheta Aug 5, 2026
e20d66d
feat(plot): paginate the per-term figures, and name what a figure drops
auzaheta Aug 5, 2026
723af48
chore: 1.0.5, the goldfish diagnostic plot surface
auzaheta Aug 5, 2026
3a9e6d0
Removed the CRAN version check from `.onAttach()`, making `library(au…
jhollway Aug 14, 2026
9e21d5d
Added a `persist` argument to `stocnet_theme()` so chosen themes can …
jhollway Aug 14, 2026
6f25105
Fixed size of self-loops to draw as a fraction of how far the layout …
jhollway Aug 14, 2026
d3e3e7a
Improved node shape legend of a two-mode network to name the modes wh…
jhollway Aug 14, 2026
daff15e
Fixed `layout_multilevel()` to identify modes without having to name …
jhollway Aug 14, 2026
31ba320
Improved `graphr()` to draw multilevel networks of interlocking one-m…
jhollway Aug 14, 2026
75d0084
Fixed labelling to be plain text nudged away instead of white-boxed l…
jhollway Aug 14, 2026
4b10bc8
Fixed default node size in multilevel layout, which is now taken from…
jhollway Aug 14, 2026
6f34f98
Fixed tie colouring and opacity
jhollway Aug 14, 2026
5ac91a5
Merge remote-tracking branch 'origin/feature/goldfish-diag' into develop
jhollway Aug 14, 2026
e104930
Added goldfish changes to NEWS
jhollway Aug 14, 2026
b95d64c
Improved goldfish plot news
jhollway Aug 14, 2026
86175ae
Managed interpackage versioning
jhollway Aug 14, 2026
ff72694
Moved the decorative gifs in the visualisation tutorial into quiz ans…
jhollway Aug 14, 2026
917510b
Fixed fixtures for goldfish testing
jhollway Aug 14, 2026
64072c8
Improved `graphr()`'s `labels` to select which nodes to label
jhollway Aug 14, 2026
fc19912
Removed extra dependencies that snuck in from goldfish tests
jhollway Aug 14, 2026
f71021e
Moved the interactive() early-return to after applying the saved them…
jhollway Aug 15, 2026
010769b
Added more visual comparison to the README
jhollway Aug 15, 2026
ebc8077
Only using 4.1 pipes
jhollway Aug 15, 2026
0bf46a4
Fixed grid snapping issue
jhollway Aug 15, 2026
062efbb
Fixed meaningless layout inference
jhollway Aug 15, 2026
762a0aa
pushrelease now inherits release notes from description
jhollway Aug 16, 2026
03ec996
Renamed the goldfish classes to a package prefix plus a noun in camel…
jhollway Aug 17, 2026
b76438a
Updated conventions
jhollway Aug 20, 2026
5791cd4
Improved font detection in `stocnet_theme()` via `{systemfonts}`
jhollway Aug 20, 2026
6d832a8
Added `simulate_colorblind()` and `contrast_colors()` for checking pa…
jhollway Aug 20, 2026
c1d9a8f
Improved theme backgrounds to reach every plot, not only the graphs
jhollway Aug 20, 2026
a0ae1cb
Added `ag_ink()` for the colour a theme writes with
jhollway Aug 20, 2026
15b2360
Improved every theme's palette for colour-blind viewers, added a "cla…
jhollway Aug 20, 2026
83ae3f4
Added/improved colorblindness and font sections in tutorial and updat…
jhollway Aug 20, 2026
16d0f9d
Fixed `layout_hierarchy()` centring on a node of the second mode yet …
jhollway Aug 20, 2026
01ea387
Added `stocnet_completion()` to offer values an argument accepts as R…
jhollway Aug 20, 2026
8936835
Improved `node_group` to draw overlapping hulls (closes #51)
jhollway Aug 21, 2026
1a54fed
Fixed signed branch of `plot.matrix()` hard-coding its poles
jhollway Aug 21, 2026
5ea4e62
Improved `graphr()` to note when a colour/shape legend grows past abo…
jhollway Aug 21, 2026
bd43a1c
Added `stocnet_medium()` for standardising output to the expected medium
jhollway Aug 21, 2026
66696c2
Added `contrast_ratio()`, `severity=`, and "grey" type
jhollway Aug 21, 2026
c224820
Added ag_missing and ag_ink
jhollway Aug 21, 2026
3dfad17
This version works and tests alongside both manynet 2.2.3 and 2.3.0
jhollway Aug 22, 2026
4ca8803
Fixed remaining test issues
jhollway Aug 22, 2026
e36a5fc
Added `check_span()` and `check_offset()`
jhollway Aug 24, 2026
72238bd
Added a `layout_matching()` alias so every layout has a short name
jhollway Aug 24, 2026
7a06d37
Renamed "multilevel" layout to "levels" to avoid potential future col…
jhollway Aug 24, 2026
826442d
Moved graph snapping to its own file
jhollway Aug 24, 2026
ac1d902
Deprecated "dyad", "triad", "tetrad", "pentad" and "hexad" layout names
jhollway Aug 24, 2026
1f1e561
Added param_ggraphlayouts
jhollway Aug 24, 2026
3480d8d
Improved layered layouts
jhollway Aug 24, 2026
d3a03fc
Provided some guidance as to new layout structure
jhollway Aug 24, 2026
6bab715
Fixed layered layout labels
jhollway Aug 24, 2026
fa2481c
Fixed `graphs()` to collect guides even where panels held different r…
jhollway Aug 24, 2026
33d9a52
Fixed various documentation issues
jhollway Aug 24, 2026
13e7427
Fixed three broken paths in `layout_concentric()`
jhollway Aug 24, 2026
c6b2848
Added a "scaling" layout for multidimensional scaling
jhollway Aug 24, 2026
f93cc35
Updated vis tute with scaling info
jhollway Aug 24, 2026
0a2e502
Small tweak to better explain difference between stress and variance
jhollway Aug 24, 2026
00ba9ad
Added a "correspondence" layout for correspondence analysis
jhollway Aug 25, 2026
3a2bdd0
Using monks instead of tribes
jhollway Aug 25, 2026
419a6c6
Trimmed package size by exporting README figures to jh.com
jhollway Aug 25, 2026
0e275de
Fixed `graphr()` clipping nodes at panel edges
jhollway Aug 25, 2026
a4b5fbe
Fixed `graphr(snap = TRUE)` to use rotation and other improvements
jhollway Aug 25, 2026
5b26540
Added `backbone=` to `graphr()` for drawing dense, hairball "stress",…
jhollway Aug 26, 2026
264f284
Fixed arcs drawn on layout that places two nodes at one point
jhollway Aug 26, 2026
d4c0517
Fixed `graphr()` to draw parallel ties as a fan instead of one on top…
jhollway Aug 26, 2026
b353e14
Fixed some CRAN-costly code
jhollway Aug 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,6 @@ vignettes/precompile\.R
^\.positai$
^\.claude$
^CLAUDE\.md$
^man-roxygen$
^inst/autograph_old\.png$
^Rplots\.pdf$
366 changes: 355 additions & 11 deletions .github/CONTRIBUTING.md

Large diffs are not rendered by default.

35 changes: 35 additions & 0 deletions .github/workflows/prchecks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,41 @@ jobs:
run: spelling::spell_check_package()
shell: Rscript {0}

website-builds:
name: Website builds
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v7

- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@v2
with:
# rsconnect is not a package dependency, but pkgdown::build_site()
# calls build_tutorials() for inst/tutorials/, and that step reads
# rsconnect deployment records. Without it the site build errors out
# and the website is never checked. pushrelease.yml installs it too.
extra-packages: |
any::pkgdown
any::rsconnect
local::.
needs: website

# The site itself is deployed from pushrelease.yml, but a missing index
# entry or a broken cross-reference only surfaces at build time, which is
# too late. check_pkgdown() catches a topic left out of the reference
# index; the build catches everything else, and its output is discarded.
- name: Check reference index covers every topic
run: pkgdown::check_pkgdown()
shell: Rscript {0}

- name: Build site
run: pkgdown::build_site(preview = FALSE, install = FALSE, new_process = FALSE)
shell: Rscript {0}

articles-in-sync:
name: Tutorial articles are in sync
runs-on: ubuntu-latest
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/pushrelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,12 +116,26 @@ jobs:
echo "Renamed files"
ls autograph_*

- name: Extract release notes from NEWS.md
shell: bash
run: |
# Take the NEWS.md section for this version, else the topmost section.
awk -v ver="${{ env.PACKAGE_NAME }} ${{ env.PACKAGE_VERSION }}" '
/^# / { if (found) exit; if (substr($0, 3) == ver) { found = 1; next } }
found { print }
' NEWS.md > RELEASE_NOTES.md
if [ ! -s RELEASE_NOTES.md ]; then
awk 'NR > 1 && /^# / { exit } NR > 1 { print }' NEWS.md > RELEASE_NOTES.md
fi
cat RELEASE_NOTES.md

- name: Create Release and Upload Assets
id: create_release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.newtag.outputs.tag }}
name: Release ${{ steps.newtag.outputs.tag }}
body_path: RELEASE_NOTES.md
draft: false
prerelease: false
fail_on_unmatched_files: true
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@ toadd/*
cache/*
.positai
CLAUDE.md
Rplots.pdf
10 changes: 6 additions & 4 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: autograph
Title: Automatic Plotting and Theming of Many Graphs
Version: 1.1.2
Version: 1.2.0
Description: Visual exploration and presentation of networks should not be difficult.
This package includes functions for plotting networks and network-related metrics with sensible and pretty defaults.
It includes 'ggplot2'-based plot methods for many popular network package classes.
Expand All @@ -13,7 +13,7 @@ Encoding: UTF-8
LazyData: true
Depends:
R (>= 4.1.0),
manynet (>= 2.2.1)
manynet (>= 2.2.3)
Imports:
dplyr (>= 1.1.0),
ggraph (>= 2.2.0),
Expand All @@ -27,10 +27,12 @@ Suggests:
gifski,
methods,
migraph,
netrics,
netrics (>= 0.4.0),
systemfonts,
testthat (>= 3.0.0)
Enhances:
ergm,
goldfish,
RSiena
Authors@R:
c(person(given = "James",
Expand All @@ -55,4 +57,4 @@ Config/Needs/website:
pkgdown
Config/testthat/parallel: true
Config/testthat/edition: 3
Config/roxygen2/version: 8.0.0
Config/roxygen2/version: 8.1.0
177 changes: 111 additions & 66 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,20 @@
S3method(plot,ag_conv)
S3method(plot,ag_gof)
S3method(plot,changepoints.goldfish)
S3method(plot,diagnose_changepoints)
S3method(plot,diagnose_outliers)
Comment on lines +6 to +7
S3method(plot,diff_model)
S3method(plot,diffs_model)
S3method(plot,ergm)
S3method(plot,gof.ergm)
S3method(plot,gof.stats.monan)
S3method(plot,goldfishChangepoints)
S3method(plot,goldfishFit)
S3method(plot,goldfishGOF)
S3method(plot,goldfishMargins)
S3method(plot,goldfishOnset)
S3method(plot,goldfishOutliers)
S3method(plot,goldfishTimeTest)
S3method(plot,influenceTable)
S3method(plot,learn_model)
S3method(plot,matrix)
Expand All @@ -21,21 +30,32 @@ S3method(plot,node_measure)
S3method(plot,node_member)
S3method(plot,node_motif)
S3method(plot,outliers.goldfish)
S3method(plot,result.goldfish)
S3method(plot,selectionTable)
S3method(plot,sienaGOF)
S3method(plot,tie_measure)
S3method(plot,traces.monan)
S3method(print,check_separation)
S3method(print,grapht)
export("%>%")
export(aes)
export(ag_base)
export(ag_divergent)
export(ag_font)
export(ag_highlight)
export(ag_ink)
export(ag_missing)
export(ag_negative)
export(ag_positive)
export(ag_qualitative)
export(ag_sequential)
export(ag_size)
export(check_contrast)
export(check_offset)
export(check_separation)
export(check_span)
export(check_stress)
export(count_pages)
export(element_blank)
export(element_text)
export(geom_point)
Expand All @@ -52,110 +72,135 @@ export(labs)
export(layout_alluvial)
export(layout_concentric)
export(layout_configuration)
export(layout_correspondence)
export(layout_dyad)
export(layout_hexad)
export(layout_hierarchy)
export(layout_ladder)
export(layout_layered)
export(layout_levels)
export(layout_lineage)
export(layout_matching)
export(layout_multilevel)
export(layout_pentad)
export(layout_railway)
export(layout_scaling)
export(layout_tbl_graph_alluvial)
export(layout_tbl_graph_concentric)
export(layout_tbl_graph_configuration)
export(layout_tbl_graph_correspondence)
export(layout_tbl_graph_dyad)
export(layout_tbl_graph_hexad)
export(layout_tbl_graph_hierarchy)
export(layout_tbl_graph_ladder)
export(layout_tbl_graph_layered)
export(layout_tbl_graph_levels)
export(layout_tbl_graph_lineage)
export(layout_tbl_graph_matching)
export(layout_tbl_graph_multilevel)
export(layout_tbl_graph_pentad)
export(layout_tbl_graph_railway)
export(layout_tbl_graph_scaling)
export(layout_tbl_graph_tetrad)
export(layout_tbl_graph_triad)
export(layout_tbl_graph_valence)
export(layout_tetrad)
export(layout_triad)
export(layout_valence)
export(list_fonts)
export(load_ergm_res)
export(match_color)
export(scale_colour_hue)
export(scale_size)
export(scale_x_continuous)
export(set_completion)
export(set_stocnet_medium)
export(set_stocnet_theme)
export(simulate_colorblind)
export(stocnet_completion)
export(stocnet_medium)
export(stocnet_theme)
export(theme)
export(theme_grey)
export(unit)
export(xlab)
export(ylab)
importFrom(dplyr,"%>%")
importFrom(dplyr,distinct)
importFrom(dplyr,left_join)
importFrom(dplyr,mutate)
importFrom(dplyr,select)
importFrom(ggplot2,.data)
importFrom(ggplot2,aes)
importFrom(ggplot2,arrow)
importFrom(ggplot2,coord_fixed)
importFrom(ggplot2,element_blank)
importFrom(ggplot2,element_text)
importFrom(ggplot2,geom_histogram)
importFrom(ggplot2,geom_hline)
importFrom(ggplot2,geom_line)
importFrom(ggplot2,geom_point)
importFrom(ggplot2,geom_segment)
importFrom(ggplot2,geom_smooth)
importFrom(ggplot2,geom_text)
importFrom(ggplot2,geom_tile)
importFrom(ggplot2,geom_vline)
importFrom(ggplot2,ggplot)
importFrom(ggplot2,ggsave)
importFrom(ggplot2,ggtitle)
importFrom(ggplot2,guides)
importFrom(ggplot2,labs)
importFrom(ggplot2,scale_alpha_identity)
importFrom(ggplot2,scale_color_brewer)
importFrom(ggplot2,scale_colour_hue)
importFrom(ggplot2,scale_fill_brewer)
importFrom(ggplot2,scale_fill_gradient)
importFrom(ggplot2,scale_linetype_identity)
importFrom(ggplot2,scale_size)
importFrom(ggplot2,scale_x_continuous)
importFrom(ggplot2,scale_x_discrete)
importFrom(ggplot2,scale_y_discrete)
importFrom(ggplot2,theme)
importFrom(ggplot2,theme_bw)
importFrom(ggplot2,theme_grey)
importFrom(ggplot2,theme_void)
importFrom(ggplot2,unit)
importFrom(ggplot2,xlab)
importFrom(ggplot2,ylab)
importFrom(ggraph,geom_edge_bundle_force)
importFrom(ggraph,geom_edge_bundle_minimal)
importFrom(ggraph,geom_edge_bundle_path)
importFrom(ggraph,geom_edge_link)
importFrom(ggraph,geom_node_label)
importFrom(ggraph,geom_node_point)
importFrom(ggraph,geom_node_text)
importFrom(ggraph,scale_edge_width_continuous)
importFrom(dplyr,
"%>%",
distinct,
left_join,
mutate,
select
)
importFrom(ggplot2,
.data,
aes,
arrow,
coord_fixed,
element_blank,
element_text,
geom_histogram,
geom_hline,
geom_line,
geom_point,
geom_segment,
geom_smooth,
geom_text,
geom_tile,
geom_vline,
ggplot,
ggsave,
ggtitle,
guides,
labs,
scale_alpha_identity,
scale_color_brewer,
scale_colour_hue,
scale_fill_brewer,
scale_fill_gradient,
scale_linetype_identity,
scale_size,
scale_x_continuous,
scale_x_discrete,
scale_y_discrete,
theme,
theme_bw,
theme_grey,
theme_void,
unit,
xlab,
ylab
)
importFrom(ggraph,
geom_edge_bundle_force,
geom_edge_bundle_minimal,
geom_edge_bundle_path,
geom_edge_link,
geom_node_label,
geom_node_point,
geom_node_text,
scale_edge_width_continuous
)
importFrom(grDevices,colorRampPalette)
importFrom(igraph,add_vertices)
importFrom(igraph,as_data_frame)
importFrom(igraph,degree)
importFrom(igraph,delete_edge_attr)
importFrom(igraph,delete_graph_attr)
importFrom(igraph,delete_vertex_attr)
importFrom(igraph,graph_from_data_frame)
importFrom(igraph,permute)
importFrom(igraph,set_vertex_attr)
importFrom(igraph,vcount)
importFrom(igraph,vertex_attr_names)
importFrom(manynet,is_twomode)
importFrom(manynet,snet_info)
importFrom(manynet,snet_success)
importFrom(igraph,
add_vertices,
as_data_frame,
delete_edge_attr,
delete_graph_attr,
delete_vertex_attr,
graph_from_data_frame,
permute,
set_vertex_attr,
vcount,
vertex_attr_names
)
importFrom(manynet,
is_twomode,
snet_info,
snet_success
)
importFrom(patchwork,plot_layout)
importFrom(stats,cutree)
importFrom(stats,setNames)
importFrom(stats,
cutree,
setNames
)
Loading
Loading