我正在尝试将一个函数可视化成一个更直观的彩色编码的图形,它可以用于图像中。我试图想象荧光蛋白可以有效地从一种能量转移到另一种蛋白质的范围。在这个过程中,一个非常重要的因素是两个蛋白质之间的距离。因此,我想绘制能量转移的理论图,作为这些蛋白质顶部距离的函数。我想要一个2D强度图,我可以用它来融入我的蛋白质模型。
描述有效能量转移的函数是:
E = R^6/(R^6+r^6)
E=能量转移效率
R=F rster距离50%的转移机会
R=荧光蛋白之间的实际距离
R的低值导致E的高值,这意味着有效的能量转移->绿色的高r值导致E的低值,低效的能量转移->红色
我的问题是,是否有人能帮我把这张图转换成一个颜色编码的圆圈,在这个圆圈的中间与高E(绿色)对应,边框更红。
到目前为止,我尝试了网格+冲浪功能,但这些都需要一个矩阵,这样就不能工作了。
我感谢你的帮助,谢谢你的答复!
干杯,雷尼耶
发布于 2014-06-25 10:08:45
如果我理解正确的话
[R r] = meshgrid( 0.1:0.1:5 ); % define 2D inputs
E = (R.^6)./( R.^6 + r.^6 ); % compute 2D function
figure;
surf( R, r, E, 'EdgeColor','none'); % plot using surf
xlabel('R');
ylabel('r');
colormap( [ 1:-0.05:0; 0:.05:1; zeros( 1, numel(0:.05:1) )]' ); % colormap red->green你得到的是

如果您想用E( x,y ; R=5.1 )绘制2D函数r(x,y) = || x - y ||,那么可以尝试
[X Y] = meshgrid(-120:1:120); % x,y range -120:120 nm
r = sqrt( X.^2 + Y.^2 );
R=5.1; % fixing R to 5.1 nm
figure;
surf( X, Y, (R.^6)./( R.^6 + r.^6 ), 'EdgeColor','none');
xlabel('X[nm]');
ylabel('Y[nm]');
zlabel('E');
colormap( [ 1:-0.05:0; 0:.05:1; zeros( 1, numel(0:.05:1) )]' );
colorbar;在这种情况下,你会得到

https://stackoverflow.com/questions/24404995
复制相似问题