如这个代码,怎么改才能给这几个圆以这种着色方式用上不同的颜色:
clc;clear;close all;
figure(1)
hold on,axis equal
axis image off
t=0:pi/30:2*pi;atom=['Fe';'La';'Cl';'0 '];
positionall=[{[2.014519000000000]} {[ 0.903084161808258]} {'Fe' } {[0.630000000000000]} {'0' };
{[2.014519000000000]} {[ 4.197204011870043]} {'La' } {[0.940000000000000]} {'0' };
{[2.014519000000000]} {[ 7.868083829963254]} {'Cl' } {[0.495000000000000]} {'0' };
{[3.759143630406424]} {[ 5.077837735337234]} {'O' } {[0.370000000000000]} {'0' }
{[1.505439603785550]} {[ 1.227098020318056]} {'As-Fe'} {[0.555740766503177]} {[-32.475537335022139]};
{[1.455424172156405]} {[ 2.724599476334448]} {'La-As'} {[1.396438191800336]} {[ 69.210036531829886]}];
for i=1:size(positionall,1)
k=strfind(positionall(i,3),'-');
k=cell2mat(k);k1=isempty(k);%按行positionall里是否含'-'
if k1==1 %原子坐标行
for iii=1:size(atom,1)
j=1:2;
kk=strfind(char(positionall(i,3)),strrep(atom(iii,j),' ',''));
k2=isempty(kk);
if k2==0
r=cell2mat(positionall(i,4));
r=r/length(t);
X=r*cos(t);
Y=r*sin(t);
XX=zeros(1,length(t));
YY=zeros(1,length(t));
for ii=1:length(t)
XX=[XX;X*ii];
YY=[YY;Y*ii];
end
s=pcolor(cell2mat(positionall(i,1))+XX,cell2mat(positionall(i,2))+YY,XX.^2+YY.^2);
%画出投影原子
s.EdgeColor='none';
c=gray(256);
c=c(end:-1:1,:);
% c(:,2)=0.0;%red
c(:,3)=0.0;
if ~exist('cdata','var')
cdata=s.CData;
colormap(sin(c));
else
s.CData=cdata;
end
end
end
end
end
同学,你把gray换成其它的就可以了,比如
copper、bone、winter、summer……太多这种了,你看个例子
clc;clear;close all;
figure(1)
hold on,axis equal
axis image off
t=0:pi/30:2*pi;atom=['Fe';'La';'Cl';'0 '];
positionall=[{[2.014519000000000]} {[ 0.903084161808258]} {'Fe' } {[0.630000000000000]} {'0' };
{[2.014519000000000]} {[ 4.197204011870043]} {'La' } {[0.940000000000000]} {'0' };
{[2.014519000000000]} {[ 7.868083829963254]} {'Cl' } {[0.495000000000000]} {'0' };
{[3.759143630406424]} {[ 5.077837735337234]} {'O' } {[0.370000000000000]} {'0' }
{[1.505439603785550]} {[ 1.227098020318056]} {'As-Fe'} {[0.555740766503177]} {[-32.475537335022139]};
{[1.455424172156405]} {[ 2.724599476334448]} {'La-As'} {[1.396438191800336]} {[ 69.210036531829886]}];
for i=1:size(positionall,1)
k=strfind(positionall(i,3),'-');
k=cell2mat(k);k1=isempty(k);%按行positionall里是否含'-'
if k1==1 %原子坐标行
for iii=1:size(atom,1)
j=1:2;
kk=strfind(char(positionall(i,3)),strrep(atom(iii,j),' ',''));
k2=isempty(kk);
if k2==0
r=cell2mat(positionall(i,4));
r=r/length(t);
X=r*cos(t);
Y=r*sin(t);
XX=zeros(1,length(t));
YY=zeros(1,length(t));
for ii=1:length(t)
XX=[XX;X*ii];
YY=[YY;Y*ii];
end
s=pcolor(cell2mat(positionall(i,1))+XX,cell2mat(positionall(i,2))+YY,XX.^2+YY.^2);
%画出投影原子
s.EdgeColor='none';
%
c=winter;
c=c(end:-1:1,:);
% c(:,2)=0.0;%red
c(:,3)=0.0;
if ~exist('cdata','var')
cdata=s.CData;
colormap(sin(c));
else
s.CData=cdata;
end
end
end
end
end