-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
429 lines (396 loc) · 30.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
<!DOCTYPE html>
<html lang="zh" dir="auto">
<head>
<meta name="generator" content="Hugo 0.144.2"><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>Yorksite</title>
<meta name="description" content="">
<meta name="author" content="Yorkson">
<link rel="canonical" href="https://yorks0n.github.io/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.a64d292f66122a1e5591815ee8c06e138b9cb7dda180c36c77cfcf3f15fa04b5.css" integrity="sha256-pk0pL2YSKh5VkYFe6MBuE4uct92hgMNsd8/PPxX6BLU=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://yorks0n.github.io/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://yorks0n.github.io/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://yorks0n.github.io/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://yorks0n.github.io/apple-touch-icon.png">
<link rel="mask-icon" href="https://yorks0n.github.io/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" type="application/rss+xml" href="https://yorks0n.github.io/index.xml">
<link rel="alternate" type="application/json" href="https://yorks0n.github.io/index.json">
<link rel="alternate" hreflang="zh" href="https://yorks0n.github.io/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--hljs-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css" integrity="sha384-GvrOXuhMATgEsSwCs4smul74iXGOixntILdUW9XmUC6+HX0sLNAK3q71HotJqlAn" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js" integrity="sha384-cpW21h6RZv/phavutF+AuVYrr+dA8xD9zs6FwLpaCct6O9ctzYFfFr4dgmgccOTx" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/contrib/auto-render.min.js" integrity="sha384-+VBxd3r6XgURycqtZ117nYw44OOcIax56Z4dCRWbxyPt0Koah1uHoK0o4+/RRE05" crossorigin="anonymous"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
renderMathInElement(document.body, {
delimiters: [
{left: '$$', right: '$$', display: true},
{left: '$', right: '$', display: false},
{left: '\\(', right: '\\)', display: false},
{left: '\\[', right: '\\]', display: true}
],
throwOnError : false
});
});
</script>
<meta property="og:title" content="Yorksite" />
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://yorks0n.github.io/" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Yorksite"/>
<meta name="twitter:description" content=""/>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Yorksite",
"url": "https://yorks0n.github.io/",
"description": "",
"thumbnailUrl": "https://yorks0n.github.io/favicon.ico",
"sameAs": [
"https://github.com/Yorks0n", "index.xml"
]
}
</script>
</head>
<body class="list" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://yorks0n.github.io/" accesskey="h" title="Yorksite (Alt + H)">Yorksite</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
<ul class="lang-switch"><li>|</li>
</ul>
</div>
</div>
<ul id="menu">
<li>
<a href="https://yorks0n.github.io/archives/" title="📋 Archive">
<span>📋 Archive</span>
</a>
</li>
<li>
<a href="https://yorks0n.github.io/tags/" title="🏷 Tags">
<span>🏷 Tags</span>
</a>
</li>
<li>
<a href="https://yorks0n.github.io/search/" title="🔍 Search (Alt + /)" accesskey=/>
<span>🔍 Search</span>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<article class="first-entry home-info">
<header class="entry-header">
<h1>Yorksite</h1>
</header>
<div class="entry-content">
All those moments will be lost in time, like tears in rain
</div>
<footer class="entry-footer">
<div class="social-icons">
<a href="https://github.com/Yorks0n" target="_blank" rel="noopener noreferrer me" title="Github">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path
d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22">
</path>
</svg>
</a>
<a href="index.xml" target="_blank" rel="noopener noreferrer me" title="Rss">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path d="M4 11a9 9 0 0 1 9 9" />
<path d="M4 4a16 16 0 0 1 16 16" />
<circle cx="5" cy="19" r="1" />
</svg>
</a>
</div>
</footer>
</article>
<article class="post-entry">
<header class="entry-header">
<h2>Rstudio也能用GitHub Copilot了
</h2>
</header>
<div class="entry-content">
<p>希望我不是最后一个知道的。</p>
</div>
<footer class="entry-footer"><span title='2024-12-27 12:00:11 +0800 +0800'>十二月 27, 2024</span> · Yorkson</footer>
<a class="entry-link" aria-label="post link to Rstudio也能用GitHub Copilot了" href="https://yorks0n.github.io/posts/rstudio_with_copilot/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2>双十一买了啥
</h2>
</header>
<div class="entry-content">
<p>最近太忙了,半个多月前就打完了草稿,但一直没空更新,趁偷闲更新一下。
iPad mini A17 Pro 赶上国补的85折买的,首发破发的苹果还得是国补。虽然是不用加400就能上air的价格,但早就想买个mini日常娱乐用。到手后又配了大康的膜和咸鱼淘的微瑕紫色双面夹,发现不如橙色的亮眼,有些后悔,还是今年新出的紫色更好看。贴膜后屏幕摸起来不再涩涩的,也不担心丢在桌子柜子上刮到机器了。非常满意,几乎每天回到家就捧着它。现在每天白天看屏幕的时间太久了,回家看手机的时候总会觉得屏幕太小,很疲惫,mini的大小就刚刚好,既够大,又不至于大到不想捧着它。大部分时候我拿它看看b站的视频,或是看会儿直播(之前只用手机就不太会看直播,看屏幕久了太累了)。同时,用mini看微信读书也非常舒适,之前曾经在手机上用过,但那个屏幕太小,读书总不太得劲,宁可去用kindle看。我一直觉得看书这种事,偶尔导入一下书,其他时候只用kindle也不大麻烦,但现在发现用起来方便真的太重要了,能极大促进我拿起来读书的欲望,甚至让我第一次去充了个微信读书会员。
caldigit TS3 plus雷电拓展坞 不知道是最近压力大还是双十一前后,购物欲望老强了,新的Mac mini M4也让人看着就心动。然而我的M2 16+512才买一年多,用着也没啥不妥,纠结之下就没买新的Mac mini。于是寻思着买点其他的给自己一点快乐,某天突然想到我的Mac mini的HDMI接口可能是有点松垮,加上经常会去机器上插拔优盘等,于是老会碰到HDMI线,让屏幕黑屏,这时候就要重新去动一动那个线,并且此趋势近期有愈演愈烈的倾向,便打算买个扩展坞。既然要买,准备买个雷电接口的,可那时去看群友挂在闲鱼上的品相价格俱佳的TS4已经被卖掉了,搜了搜有洋垃圾plugable实在不咋好看,就降了降六百多收了个闲鱼上的TS3 plus。Caldigit的这几个扩展坞还都是DP的接口,相比HDMI接口也更稳固一些。虽然旧的这款是DP 1.2的,好在接我4K 60 hz的旧LG显示器也完全足够了。顺便收拾了一下桌子,把Mac mini放在升降台下,扩展坞放在升降台上,插拔优盘很方便,也不再会黑屏了。把我之前的一个爱国者固态也长期插在扩展坞上,休眠或重启后也不会断连,美中不足是扩展坞老是温温的,不知道夏天会不会太热。
</p>
</div>
<footer class="entry-footer"><span title='2024-12-05 18:16:00 +0800 +0800'>十二月 5, 2024</span> · Yorkson</footer>
<a class="entry-link" aria-label="post link to 双十一买了啥" href="https://yorks0n.github.io/posts/buy_11/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2>文献一团乱麻?试试PARA管理方法
</h2>
</header>
<div class="entry-content">
<p>文献积累——学术生涯的外部记忆 在科研之路上,你想要积累哪些知识?
有没有过这样的经历?你正在准备一个重要的研究报告或论文,需要找到那篇关键的文献,但却在堆积如山的文件和资料中找不到它。或者你读过一篇很好的文献,但当你想引用它的时候,你却忘记了它的具体内容。
在一些科幻作品中,存在“外部记忆装置”的设定,其中的人物往往不将全部信息记在脑中,而是在需要时从外部记忆中调取内容。如今我们的现实已经与之颇有些相似:我们不会记住每一个具体的知识细节,浩如烟海的内容爆炸也不允许我们这么做,但我们通常知道去哪里找到这部分知识。当下,电脑和手机已经成为我们肢体的延伸,搜索引擎强大的检索功能,赋予我们按照需求取用知识的能力。
而在科研道路上,经年累月的学习不但锻炼着我们的实验技能,积累下来的知识同样是我们学习道路上宝贵的财富。在此过程中,我们读过的每一篇文献,被我们记住的不是其中具体的语句,而是各项工作中的主要结果和结论。但在有些时候,比方说想参考某个方法做个相似的实验,或是写作背景综述时,我们会回忆起曾经看过的文章,会去找出最原始的文章查看更多细节。这时,曾经整理过的文献便摇身一变,担当起我们学术生涯外部记忆的职责。
为什么文献常常乱作一团? 那么,为什么明明每一篇文献都有明确的主题和关键词,整理起来却依旧存在非常多困难呢?举个例子,说有一篇文章,“如何做出一盘无敌好吃的小炒肉”,里面从肉的选购、处理、调味到烹饪方法一应俱全。你看完后,觉得非常好,这么棒的技巧我一定要学会,你会把它收在哪?
菜谱 —— 没错,再怎么说这也是个菜谱,放这准没错 年夜饭菜单 —— 今年的年夜饭由你掌勺,正巧家里有人最爱吃小炒肉,放这备着 如何买菜 —— 本文的肉类选购部分讲得太清晰了,常常温习准能以后买菜不踩坑 常用调味料 —— 刚搬了新家,需要买些调料,你正在想买什么合适 …… 如果从上面几点出发,这些归类方式似乎都有各自的道理,这也是信息管理有时会比较困难的原因:在不同的场景下,相同的内容可以有不同的分类方式,并且往往没有对错之分。
因此我觉得,好的文献管理思路比工具更重要。现在能用来做文献管理的工具层出不穷,Endnote也好,Zotero也好,网上都能找到非常详细的用法教程。但是假如只有工具,没有恰当的内容组织思路,那工具里的文献也会堆成一团乱麻。我更想提供一个框架,让每个人可以根据自己的需要,将内容以一种便于寻找的方式组织起来。
我们的目的:让内容便于被找到。
什么是PARA方法? 在之前的很长时间里,我一直隐约觉得,自己整理的文献资料库,其中的各个文件夹彼此之间没有明确的分隔关系,以至于想存一篇新文章的时候,要纠结半天放在哪。纠结完存进去后,要找来用的时候又找不出来这篇文章了。后来偶然间了解到了一种称为PARA的信息整理方法,它将内容分类为项目、领域与资源几个大类。或许它不是最好最完美的,但是相比于没有框架的时候,已经有了质的飞跃。也因此,我今天将其分享给大家,如果你们也遇到过相似的困扰,可以尝试一下这个方法。
所谓PARA,其实是Tiago Forte提出的一种组织信息的思路。其实,PARA分别代表Projects(项目)、Areas(领域)、Resources(资源)和Archives(归档)。
这样讲可能比较抽象,举个我自己的例子,比如我关注基因组学和生物信息学,我所做的课题也与之有关,相关分析做得好可以帮助我产出成果,做不好则毕业都很费劲,我需要为此负责,因此基因组学就可称作我关注的一个领域。同时,我的课题是一个物种的基因组测序项目,从我开始着手找资料开始,历经测序、组装和分析,直到文章发表结束,因为能划分出非常明确的开始和结束时间,因此这个课题属于一个项目。同时,我又对平面设计比较感兴趣,会去看一些相关的书籍和学习资料,这些东西我看着会觉得很有意思,但如果不看也不太影响我完成课题,于是可以算作资源。另外,假如我之前有个项目已经做完了,已经完成项目的内容我当然不需要经常去关注,那它就可以被划到归档。
然而,领域与项目、资源之间并不是独立的,而是可以互相滋养
通过项目来打磨提升领域——比方说,我关注基因组学,但是只靠看一堆基因组相关的文章提升实在有限,必须要自己去实际做一些项目来锻炼,在项目中熟悉各部分的流程,并实际掌握操作的技能。
通过资源支撑领域域 ——我们日常看的各种文章、资料,大部分都属于资源而非领域,正如上面讲到,我们没法只靠读来掌握某些内容。但是每天的精力是有限的,假如分配给太多方面,面面俱到也很困难。于是更好的方法是基于领域 (或者将来潜在的 Area)作为精进的方向,然后把资源当做领域的基石和养分。
如何将PARA方法应用在组织文献中 不过,要想用这种方式来管理自己的文献,首先需要花点时间想一想,对自己来说,究竟想要积累哪些知识?
这里先来讲讲我的,我在项目中放入了刚刚提到的物种测序项目,因为这是我的课题;在领域中包含了基因组学,数据可视化,生物信息学等,因为这是我的专业方向,同时与我的课题息息相关;在资源中放入了平面设计,认知与思维方式,效率,以及语言,因为我对这些方面非常感兴趣;最后,归档中有我之前做过的一个项目,某个物种的耐盐基因筛选,它已经结束了,于是进了归档。
这个清单的长度当然没有明确的限制,但是当你打算往自己关注的领域里放入二三十个主题时,也得掂量掂量有没有足够的精力。创建一个清晰的清单,能让你对自己想要积累知识的边界更加明确,就可以据此有意识地、战略性地决定看或者不看某篇文章,决定某个拖了很久的工作究竟是赶快弥补还是尽快放弃它。 相反,如果你不为自己定义清单,就会被不断拉着、推到别人的项目中去。比如,CNS新出了一堆顶刊文章,你看不看,看哪些?
可以看到,其中有几部分是和科研有关的,另一部分则是兴趣使然。和科研有关的部分,我就时常需要读些论文,并将对应的知识积累起来。
然后,你需要选择一个用来管理文献的工具。我选择了Zotero作为文献管理的工具,它大概长这样。左边的区域包括以文件夹形式组织的目录,下方是给文献打上的标签,中间区域是文献的标题、作者、期刊、年份等信息,右边则是选中某条文章后的详细信息。
你也完全可以选择别的工具,比如更为老牌的Endnote,可能会是更多人包括大家的导师的第一选择,生命科学图书馆之前是有Endnote可以下载的。我讲的与选择特定工具并不关联,你可以任意选择喜欢的工具,并在那个工具中实现相似的效果。
接下来需要在文献管理软件中根据选择好的项目、领域、资源创建大类。
假如你已经在使用这样的文献管理工具,已经积累了一些文章,但是它们有些混乱。可以这样重新开始:将所有现有的文章移动到一个新的文件夹,命名为归档和当前日期,然后开始接下来的步骤。因为与其花费大量时间整理它们,将来也不一定用得到,反而可能让你失去开始的契机。因此不如和它们暂时告别,不必担心丢失任何东西,它们都还在,当需要的时候还可以通过搜索找到它们。
让我们继续,在管理软件的目录下,按照项目、领域、资源和归档创建四个大类,并将大类下面为你选定的主题再分别创建文件夹。记住,一开始只需要创建到每个大类下的主题就可以了,只有当在你在这个主题下积累了一定的内容,感觉需要进一步细分时,才创建新的文件夹,可以最大程度避免文件夹的冗余和混乱。
这里还有两个小技巧,其一是默认的文件夹可能会按字母排序,你可以在前面加上数字,让它们按你想要的顺序排序。其二是我还为其添加了一个收集箱(Inbox),放在所有类别最前面,这样当遇到某篇可能感兴趣的文章时,可以先将其收进收集箱,等看完后判断一下,是将它储存起来以备将来查阅,还是和我需要的知识不太相关,因此直接删除。
随后,可以进一步按照内容将某个项目拆分为更细的子类别。比如这里以我比较熟悉的基因组测序项目为例,它由前期的基因组调研、组装注释,以及下游的一系列分析组成。
我可以按照项目推进的阶段,将其拆分为一个个子项目,比如在调研阶段,我看的文章主要是基因组大小、染色体信息、近缘物种等资料,在组装注释阶段,需要看各种软件的使用方法,而在分析阶段,则需要阅读许多现有文章,总结其分析流程和方法。
这里强调两个实用的功能,一个是标签,我给一部分比较常用的标签设置了颜色,让其显示在文章处,比如标记文章是否已读,读完觉得文章是否重要。还可以按照文章类型标记标签,比如综述类、方法类,或是将文章归类为特定主题,一切都以自己将来找某个文章时是否方便为依据。
另一个实用的功能是Zotero里的Short Title功能,可以看向右图中中间这一列。这一列默认是不显示的,需要在调整显示的列中将其显示出来。可以看到我给不少文章加上了短标题,这样瞄一眼就能找到我想找的文章。
虽然这里只写了项目,但是领域、资源类别下同理进行划分。最后记得将已经完成的项目,放入归档中。
...</p>
</div>
<footer class="entry-footer"><span title='2024-11-29 13:30:00 +0800 +0800'>十一月 29, 2024</span> · Yorkson</footer>
<a class="entry-link" aria-label="post link to 文献一团乱麻?试试PARA管理方法" href="https://yorks0n.github.io/posts/para_and_zotero/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2>点名的风还是吹到了Blog
</h2>
</header>
<div class="entry-content">
<p>历史真是个圈。</p>
</div>
<footer class="entry-footer"><span title='2024-10-23 00:00:00 +0000 UTC'>十月 23, 2024</span> · Yorkson</footer>
<a class="entry-link" aria-label="post link to 点名的风还是吹到了Blog" href="https://yorks0n.github.io/posts/nine_questions/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2>从Raindrop迁移到了Anybox
</h2>
</header>
<div class="entry-content">
<p>苦raindrop久矣,终于找到趁手的书签管理工具了</p>
</div>
<footer class="entry-footer"><span title='2024-10-22 00:00:00 +0000 UTC'>十月 22, 2024</span> · Yorkson</footer>
<a class="entry-link" aria-label="post link to 从Raindrop迁移到了Anybox" href="https://yorks0n.github.io/posts/change_to_anybox/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2>数据可视化——基本图形元素及其应用
</h2>
</header>
<div class="entry-content">
<p>介绍可视化作图过程中使用的基本元素,简单分析不同数据类型与适合使用的展示方式。</p>
</div>
<footer class="entry-footer"><span title='2023-07-19 00:00:00 +0000 UTC'>七月 19, 2023</span> · Yorkson</footer>
<a class="entry-link" aria-label="post link to 数据可视化——基本图形元素及其应用" href="https://yorks0n.github.io/posts/basic_elements_data_vis/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2>单变量异常值检测方法
</h2>
</header>
<div class="entry-content">
<p>整理一下检测单变量异常值的方法。</p>
</div>
<footer class="entry-footer"><span title='2023-07-17 14:01:55 +0800 +0800'>七月 17, 2023</span> · Yorkson</footer>
<a class="entry-link" aria-label="post link to 单变量异常值检测方法" href="https://yorks0n.github.io/posts/outlier_detection/outlier_detection/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2>复现一张相关性图
</h2>
</header>
<div class="entry-content">
<p>前几天看到群里有人问如何画一张类似下图的、带拟合线与误差的相关性图,这里找点数据来演示一下怎么画。
找了点数字画了个例子,假设数据读进来是这样的两列:
绘图的部分我用了这些
leg <- theme(title=element_text(size=15), axis.text.x=element_text(size=14), axis.text.y=element_text(size=14), legend.text=element_text(size=14)) label_text <- paste0("r = ", round(cor(subdata$Na,subdata$K),2)) library(ggplot2) ggplot(subdata, aes(x = log(Na), y = log(K))) + geom_point(size = 2,color = "#31705a") + stat_smooth(method = "lm", color = "#31705a")+ theme_classic() + annotate("text", x=5.8, y=9, label= label_text) + leg 以上代码画出来的图如下: 其中各部分的解释如下
leg <- theme(title=element_text(size=15), axis.text.x=element_text(size=14), axis.text.y=element_text(size=14), legend.text=element_text(size=14)) # 用于指定字体大小等,可以先忽略 label_text <- paste0("r = ", round(cor(subdata$Na,subdata$K),2)) # 用于计算相关系数r的值,并处理成标在图上的「r = xxx」的文本 library(ggplot2) # 用ggplot2包画图 ggplot(subdata, aes(x = log(Na), y = log(K))) + #指定画图的数据subdata,在aes(x = ,y = )中指定横纵坐标轴 geom_point(size = 2,color = "#31705a") + #绘制散点部分,点的大小为2,颜色为浅绿色 stat_smooth(method = "lm", color = "#31705a")+ #绘制拟合线部分,method = "lm" 使用线性拟合,颜色同前 theme_classic() + # 使用ggplot的classic画图主题,是个只显示横纵坐标轴的主题 annotate("text", x=5.8, y=9, label= label_text) + # 添加上文字标注,类型是"text",位置在x=5.8,y=9 leg # 添加之前指定的字体大小部分,不关键 </p>
</div>
<footer class="entry-footer"><span title='2023-05-30 09:24:00 +0800 +0800'>五月 30, 2023</span> · Yorkson</footer>
<a class="entry-link" aria-label="post link to 复现一张相关性图" href="https://yorks0n.github.io/posts/corplot_case/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2>【读文献】单细胞分析最佳实践
</h2>
</header>
<div class="entry-content">
<p>Best practices for single-cell analysis across modalities</p>
</div>
<footer class="entry-footer"><span title='2023-04-07 00:00:00 +0000 UTC'>四月 7, 2023</span> · Yorkson</footer>
<a class="entry-link" aria-label="post link to 【读文献】单细胞分析最佳实践" href="https://yorks0n.github.io/posts/read-single-cell-best-practice/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2>Docker 打包 Shiny App
</h2>
</header>
<div class="entry-content">
<p>介绍了如何将 Shiny App 打包成 Docker 格式,方便在不同设备环境下托管</p>
</div>
<footer class="entry-footer"><span title='2023-03-28 09:30:49 +0000 UTC'>三月 28, 2023</span> · Yorkson</footer>
<a class="entry-link" aria-label="post link to Docker 打包 Shiny App" href="https://yorks0n.github.io/posts/docker-pack-shiny-app/"></a>
</article>
<footer class="page-footer">
<nav class="pagination">
<a class="next" href="https://yorks0n.github.io/page/2/">下一页 »
</a>
</nav>
</footer>
</main>
<footer class="footer">
<span>© 2025 <a href="https://yorks0n.github.io/">Yorksite</a></span>
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>