我根据以下示例创建了一个漂亮的散点图http://www.dgsiegel.net/news/2011_12_05-creating_beautiful_graphics_with_pgfplots。
我现在的问题是,为了展示所有的是-ticks 的大小必须增加。这样做会产生 2 个额外的是- 使用最后一个已知值进行标记。如下图所示:
该图的代码如下:
\begin{tikzpicture}
\begin{axis}[
grid=major,
point meta=explicit,
xmin=0,
xmax=10,
xlabel=Cijfer,
scatter/@pre marker code/.code={%
\pgfmathparse{\pgfplotspointmetatransformed/1000*50+50}%
\let\opacity=\pgfmathresult
\pgfmathparse{\pgfplotspointmetatransformed/1000*7.5+1}%
\def\markopts{mark=*, color=skyblue1!\opacity,%
fill=skyblue1!\opacity, mark size=\pgfmathresult}%
\expandafter\scope\expandafter[\markopts]
},
scatter/@post marker code/.code={\endscope},
symbolic y coords={
AlgemeneTevredenheid,
Toegankelijkheid,
TelBereikbaarheid,
BereikbaarheidHelp,
GebruiksvriendelijkheidHelp,
Klantvriendelijkheid,
ProbleemoplossendVermogen,
Deskundigheid,
Professionaliteit,
Terugkoppeling,
GebodenOplossing,
ToepasbaarheidOplossing,
NakomenAfspraken
},
xtick = {1,...,10},
x=0.59cm,
y=0.8545cm,
]
\addplot[only marks,scatter]
table[x index=0, y index=1, meta index=2] {CijferDistributie.dat};
\end{axis}
\end{tikzpicture}
更改y=0.8545cm
控制每条线的高度,如果减少太多则不会显示每个 y 轴刻度,如果增加则会增加额外的线。
我想展示每一个是-勾选,但不包含额外的行。有人对这个问题有什么想法吗?
为了完整性,该CijferDistributie.dat
文件如下所示:
Cijfer Vraag Aantal
1 AlgemeneTevredenheid 0
2 AlgemeneTevredenheid 0
3 AlgemeneTevredenheid 0
阿尔延
答案1
最简单的解决方案是添加ytick=data
。然后您只会获得与表中数据条目相对应的行。或者,您可以指定ymin
,ymax
并设置enlarge y limits=true
。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
grid=major,
point meta=explicit,
xmin=0,
xmax=10,
xlabel=Cijfer,
scatter/@pre marker code/.code={%
\pgfmathparse{\pgfplotspointmetatransformed/1000*50+50}%
\let\opacity=\pgfmathresult
\pgfmathparse{\pgfplotspointmetatransformed/1000*7.5+1}%
\def\markopts{mark=*, color=blue!\opacity,%
fill=blue!\opacity, mark size=\pgfmathresult}%
\expandafter\scope\expandafter[\markopts]
},
scatter/@post marker code/.code={\endscope},
symbolic y coords={%
AlgemeneTevredenheid,
Toegankelijkheid,
TelBereikbaarheid,
BereikbaarheidHelp,
GebruiksvriendelijkheidHelp,
Klantvriendelijkheid,
ProbleemoplossendVermogen,
Deskundigheid,
Professionaliteit,
Terugkoppeling,
GebodenOplossing,
ToepasbaarheidOplossing,
NakomenAfspraken%
},
xtick = {1,...,10},
ytick=data,
x=0.59cm,
y=0.8cm,
]
\addplot[only marks,scatter]
table[x index=0, y index=1, meta index=2] {CijferDistributie.dat};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[
grid=major,
point meta=explicit,
xmin=0,
xmax=10,
xlabel=Cijfer,
scatter/@pre marker code/.code={%
\pgfmathparse{\pgfplotspointmetatransformed/1000*50+50}%
\let\opacity=\pgfmathresult
\pgfmathparse{\pgfplotspointmetatransformed/1000*7.5+1}%
\def\markopts{mark=*, color=blue!\opacity,%
fill=blue!\opacity, mark size=\pgfmathresult}%
\expandafter\scope\expandafter[\markopts]
},
scatter/@post marker code/.code={\endscope},
symbolic y coords={%
AlgemeneTevredenheid,
Toegankelijkheid,
TelBereikbaarheid,
BereikbaarheidHelp,
GebruiksvriendelijkheidHelp,
Klantvriendelijkheid,
ProbleemoplossendVermogen,
Deskundigheid,
Professionaliteit,
Terugkoppeling,
GebodenOplossing,
ToepasbaarheidOplossing,
NakomenAfspraken%
},
xtick = {1,...,10},
ymin=AlgemeneTevredenheid,
ymax=NakomenAfspraken,
enlarge y limits=true,
x=0.59cm,
y=0.8cm,
]
\addplot[only marks,scatter]
table[x index=0, y index=1, meta index=2] {CijferDistributie.dat};
\end{axis}
\end{tikzpicture}
\end{document}