是否可以绘制一个表格,pgfplots
其中标记是椭圆,长半轴和短半轴代表误差的大小?这样数据点就显示为其自己的“不确定区域”。向椭圆边缘淡出会是一个不错的加分项,但纯粹是可选的。
不幸的是,我无法提供“已经尝试过这种方式的示例”,因为我完全不知道从哪里开始。
答案1
您可以使用现有的error bar
基础设施将坐标放置在误差椭圆的长轴和短轴的端点,然后使用 Percusse 的简化版本的答案绘制椭圆如何将椭圆拟合到另一个对象中 - 使用交叉点和计算库。
这是一个error ellipse
实现此目的的样式。您可以使用 键更改误差椭圆的样式error ellipse style
。要获得褪色填充,您可以设置error ellipse style={inner color=red, outer color=white}
。
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots, filecontents}
\usetikzlibrary{calc}
\pgfplotsset{compat=1.5.1}
\newcounter{mark}
\pgfplotsset{
every error ellipse/.style=draw,
error ellipse style/.style={
every error ellipse/.style={#1}
},
error ellipse/.style={
error bars/error mark options={},
/pgfplots/error bars/draw error bar/.code 2 args={%
\stepcounter{mark}
\coordinate [inner sep=0pt] (errormarknode-\themark) at ##2 {};
\ifnum\themark=4
\path [/pgfplots/every error ellipse] let
\p1=(errormarknode-1),
\p2=(errormarknode-2),
\p3=(errormarknode-3),
\p4=(errormarknode-4)
in
##1 ellipse [x radius=(\x2-\x1)/2, y radius=(\y4-\y3)/2]
;
\setcounter{mark}{0}
\fi
}
}
}
\begin{filecontents}{data.dat}
x y errorx errory
1 1 0.1 0.2
3 2 1 0.3
5 2 1 1
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
grid=both,
axis equal % So equal x and y errors result in circles
]
\addplot [
mark=*, only marks,
error ellipse,
error bars/.cd,
x dir=both, y dir=both,
x explicit, y explicit
] table [
x error=errorx, y error=errory
] {data.dat};
\end{axis}
\end{tikzpicture}
\end{document}