From d64b54e7571fb5b1e5ac2dd7bbd7652ca106033e Mon Sep 17 00:00:00 2001 From: Robert Stojnic Date: Tue, 7 Apr 2020 20:31:21 +0100 Subject: [PATCH] Update link and fix graph cex --- README.md | 2 +- notebooks/code_checklist-analysis.Rmd | 4 ++-- notebooks/code_checklist-analysis.pdf | Bin 172141 -> 172165 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ff3b923..14d4733 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ The goals of the ML Code Completeness Checklist are to: We find that those repositories that score higher on the checklist tend to have a higher number of GitHub stars. -We've verified this by analysing NeurIPS 2019 repositories. For more details on this analyis please refer to our [blog post](https://medium.com/paperswithcode/). We also provide the [data](notebooks/code_checklist-neurips2019.csv) and [notebook](notebooks/code_checklist-analysis.Rmd) to reproduce this analysis from the post. +We've verified this by analysing NeurIPS 2019 repositories. For more details on this analyis please refer to our [blog post](https://medium.com/paperswithcode/). We also provide the [data](notebooks/code_checklist-neurips2019.csv) and [notebook](notebooks/code_checklist-analysis.pdf) to reproduce this analysis from the post. The checklist is made to be as general as possible. It consists of five items: diff --git a/notebooks/code_checklist-analysis.Rmd b/notebooks/code_checklist-analysis.Rmd index a3eac9e..adb4cf1 100644 --- a/notebooks/code_checklist-analysis.Rmd +++ b/notebooks/code_checklist-analysis.Rmd @@ -64,10 +64,10 @@ layout(matrix(c(1,2), 1, 2, byrow = TRUE), widths=c(3,2)) barplot(medians, xlab="", ylab="Median GitHub stars", ylim=c(0,200), - col=brewer.pal(6, "Blues"), cex.axis=0.7, cex.names=0.7) + col=brewer.pal(6, "Blues"), cex.axis=0.6, cex.names=0.6) mtext("GitHub repos grouped by number of ticks on ML code checklist", side=1, line=3, cex=0.8) -pie(rev(props), col=rev(brewer.pal(6, "Blues")), cex=0.7) +pie(rev(props), col=rev(brewer.pal(6, "Blues")), cex=0.6) mtext("Proportion of repositories in each group", side=1, line=3, cex=0.8) ``` diff --git a/notebooks/code_checklist-analysis.pdf b/notebooks/code_checklist-analysis.pdf index 01c95d11a9f69ef1706fe42e40f217f8620883f8..11626b598dc6831883aa0756c8f0dc5ae38865fe 100644 GIT binary patch delta 6813 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�!q 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 a3T19&Z(?c+mu{c}4hc0f3MC~)Peuw#nQP_%