是否可以创建一个打孔卡,使其看起来与GitHub在...的帮助下pgfplots
?
存储在的数据punchcard.dat
:
0 Monday 18
1 Monday 67
2 Monday 62
<hour> <day> <commits>
答案1
首先,我们来选取一种适合展示影响力的颜色:
\definecolor{skyblue}{rgb}{0.447,0.624,0.812}
pgfplots
天蓝色!看起来很酷,很漂亮。添加并给它一些选项没有问题:
\usepackage{pgfplots}
\pgfplotsset{compat=1.7}
最有趣的部分是:
- 首先(行
1
和2
)我们打开axis
环境; - 在线上
3-7
我们定义了一些通用选项; 9-11
:让不透明度为50 * commits / 1000 + 50
;12-13
:定义标记的大小为6.5 * commits / 1000 + 1
;- 在线上
14-18
我们改变标记的大小、颜色和填充。
最后:
\documentclass{standalone}
\usepackage{mathpazo}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\definecolor{skyblue}{rgb}{0.447,0.624,0.812}
\begin{document}
\begin{tikzpicture} %1
\begin{axis}[ %2
grid=major, %3
point meta=explicit,
xmin=-1,
xmax=24,
xlabel=Hours, %7
scatter/@pre marker code/.code={
\pgfmathparse{ %9
\pgfplotspointmetatransformed/1000*50+50} %10
\let\opacity=\pgfmathresult %11
\pgfmathparse{ %12
\pgfplotspointmetatransformed/1000*6.5+1} %13
\def\markopts{ %14
mark=*, %15
color=skyblue!\opacity, %16
fill=skyblue!\opacity, %17
mark size=\pgfmathresult} %18
\expandafter\scope\expandafter[\markopts]},
scatter/@post marker code/.code={
\endscope},
symbolic y coords={Sunday,Saturday,Friday,Thursday,Wednesday,Tuesday,Monday},
xtick={0,...,23},
x=0.6cm,
y=0.6cm]
\addplot[only marks,scatter]
table[x index=0, y index=1, meta index=2] {punchcard.dat};
\end{axis}
\end{tikzpicture}
\end{document}
结果如下: