文件交换的选择

我们最好的用户提交

20周年——最活跃的FEX条目

汪东城 本周的选择是以下4项:
今年是MATLAB 20周年中央, 庆祝 我们举行了一个比赛, 寻宝游戏 迷你黑客 。5年前,我写了 这篇文章 强调最活跃/互动文件交换条目,作为15周年的一部分。在这篇文章中,让我们看看一些最活跃的和交互式文件交换条目在过去的5年。

与大多数评论条目

就像上次一样,首先让我们看看最多的条目的评论数量在过去5年(2017年1月到2021年12月)。
负载FEX2017to2021。垫addonsAfter2016 commentsAfter2016 versionsAfter2016
addonsAfter2016 = sortrows (addonsAfter2016,“NumComments”,“下”);
酒吧([addonsAfter2016.NumAuthorComments (1:10), addonsAfter2016.NumUserComments (1:10)],“堆叠”)
标题(“许多评论(2017年1月以来)”)
xticks (1:10)
xticklabels (addonsAfter2016.NameShort (1:10))
集(gca),“TickLabelInterpreter”,“没有”)
传奇(“作者评论”,“用户评论”,“位置”,“东北”)
如果我们看评论的总数,我们看到条目 MATLAB文件关联&快捷修复 通过 帕特里克•Forssen 。事实上,这个文件被选为 选择的 早在2016年。

Wordcloud评论

我们看到一些条目的评论主要来自用户,而其他人有更多的评论的作者条目,暗示用户和作者之间的“对话”。当然,条目的评论主要来自用户更有价值。做一个快速的词云在评论“MATLAB文件关联和快捷修复”似乎显示出许多的赞美。
addonsAfter2016 = sortrows (addonsAfter2016,“NumComments”,“下”);
%提取所有的评论“MATLAB文件关联和快捷修复”
textData = commentsAfter2016.Comment (commentsAfter2016。AddOnUUID = = addonsAfter2016.AddOnUUID (1) & ~ commentsAfter2016.IsCommentByContributor);
wordcloud (textData)
标题(”的评论:“+ addonsAfter2016.Name (1))

与大多数作者评论的条目

让我们看看哪些条目有许多作者的评论。
addonsAfter2016 = sortrows (addonsAfter2016,“NumAuthorComments”,“下”);
酒吧([addonsAfter2016.NumAuthorComments (1:10), addonsAfter2016.NumUserComments (1:10)],“堆叠”)
标题(“许多评论(2017年1月以来)”)
xticks (1:10)
xticklabels (addonsAfter2016.NameShort (1:10))
集(gca),“TickLabelInterpreter”,“没有”)
传奇(“作者评论”,“用户评论”,“位置”,“东北”)
非常好!似乎有一个很好的平衡这些条目作者和用户评论。

最更新的条目

更新数量怎么样?经常更新的条目表明他们正在积极维护的作者。
addonsAfter2016 = sortrows (addonsAfter2016,“NumUpdates”,“下”);
栏(addonsAfter2016.NumUpdates (1:10))
标题(“数量的更新(自2017年1月)”)
xticks (1:10)
xticklabels (addonsAfter2016.NameShort (1:10))
集(gca),“TickLabelInterpreter”,“没有”)

看着几个指标

我们已经看到一些条目出现在多个条形图。让我们试着想象其中的几个指标一起,看看哪些脱颖而出。
首先,我将任意选择条目,自2017年1月以来至少100条评论。
addonsAfter2016_over100comments = addonsAfter2016 (addonsAfter2016。NumComments > 100年:);
numEntries =身高(addonsAfter2016_over100comments)
numEntries = 47
47个条目。这是一个很好的数字。
让我们计算的比率作者评论的所有评论和基于比例。我这样做,因为我想看哪个条目有一个相对大量的作者评论相比,总体评论。
addonsAfter2016_over100comments。AuthorCommentRatio= addonsAfter2016_over100comments.NumAuthorComments ./ addonsAfter2016_over100comments.NumComments;
addonsAfter2016_over100comments = sortrows (addonsAfter2016_over100comments,“AuthorCommentRatio”,“下”);
现在,我们将看看以下三个指标:
  1. 作者的评论数
  2. 作者评论比总体评论
  3. 数量的更新
我将基于这些指标和排名47项看一个热图。
[~,id_author_comments] =排序(addonsAfter2016_over100comments.NumAuthorComments,“下”);
[~,id_author_ratio] =排序(addonsAfter2016_over100comments.AuthorCommentRatio,“下”);
[~,id_updates] =排序(addonsAfter2016_over100comments.NumUpdates,“下”);
排名(id_author_comments 1) = 1: numEntries;
排名(id_author_ratio 2) = 1: numEntries;
排名(id_updates 3) = 1: numEntries;
热图(排名,“XDisplayLabels”,(“Num作者评论”,“作者评论比率”,“Num更新”),
“YDisplayLabels”addonsAfter2016_over100comments.NameShort)
这里有条目,排名在10在所有三个类别。
selectedEntries = addonsAfter2016_over100comments(排名(:1)< 10 &排名(:,2)< &排名(:,3)< 10:);
selectedEntries (:,“名称”“ID”“作者”“NumComments”“NumAuthorComments”“AuthorCommentRatio”“NumUpdates”])
ans = 表4×7
的名字 ID 作者 NumComments NumAuthorComments AuthorCommentRatio NumUpdates
1 “系统性风险” 62482年 托马索Belluzzo 158年 61年 0.3861 88年
2 “fitVirusCOVID19” 74658年 米兰巴蒂斯塔 210年 78年 0.3714 56
3 “spider_plot” 59561年 摩西 144年 53 0.3681 34
4 “xiangruili / dicm2nii” 42997年 Xiangrui李 150年 55 0.3667 19

可视化的交互

让我们来看看这些条目的交互的时间。你会注意到这些交互发生的始终,这是伟大的。
系统性风险
这个条目有最多数量的更新在这个时间框架,这最有可能是出于许多来自用户的评论。
createTimelinePlot (1 selectedEntries commentsAfter2016 versionsAfter2016)
fitVirusCOVID19
可以预计,这一大流行性流感爆发后不久。你会看到很多讨论2020年上半年发生。
createTimelinePlot (2 selectedEntries commentsAfter2016 versionsAfter2016)
spider_plot
这个条目被选中作为一个选择的在过去几次。第一个 选择 是2019年10月,你可以看到摩西开始增加他的更新频率。
createTimelinePlot (3 selectedEntries commentsAfter2016 versionsAfter2016)
xiangruili / dicm2nii
文件更新该条目已经停止,但Xiangrui继续与他沟通用户评论。
createTimelinePlot (4 selectedEntries commentsAfter2016 versionsAfter2016)

评论

祝贺这四个条目。MATLAB中部和文件交换存在,因为社区的贡献。我们欣赏讨论你必须提高内容的质量在这个网站!请告诉我们你的想法 在这里 或留下你的评论作者。

Helper函数用于创建时间表阴谋

函数createTimelinePlot (id、selectedEntries commentsAfter2016 versionsAfter2016)
commentsForEntry = commentsAfter2016 (commentsAfter2016。AddOnUUID = = selectedEntries.AddOnUUID (id):);
x = commentsForEntry.Date;
y = 2 * 1(高度(commentsForEntry), 1);
y (commentsForEntry.IsCommentByContributor) = 3;
versionsForEntry = versionsAfter2016 (versionsAfter2016。AddOnUUID = = selectedEntries.AddOnUUID (id):);
散射(x, y, 100,“MarkerEdgeColor”,“没有”,“MarkerFaceColor”,“蓝色”,“MarkerFaceAlpha”,0.25)
ylim (3.5 [0])
持有
yline (2)
yline (3)
情节([versionsForEntry。日期、versionsForEntry.Date]
(1 * 1(1、身高(versionsForEntry)); 0(1,身高(versionsForEntry))),“r”);
持有
yticks ([0.5 - 2 3])
yticklabels ([“更新”,“用户评论”,“作者评论”])
ytickangle (60)
标题([selectedEntries.Name (id) selectedEntries.Author (id)],“翻译”,“没有”)
结束
|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。