• 목록
  • 아래로
  • 위로
라이선스 MIT

<배경>

역시 이것도 귀차니즘에 의해 만들어졌습니다... 

회사에서 SPR 분석을 하는데, 이 결과를 비교/분석할 때는 꺾은선 그래프(line plot)를 이용합니다. 

근데 엑셀로 변환해도 와 범위가 몇천초...... 이걸 언제 다 씌워서 그래프 그리고 이동하고...... 

 

귀찮아요. 너무 귀찮아요. 그래서 만들었습니다. 

 

<코드 1-샘플(가장 최근꺼)>

function extriplot(~,~,~)
path=input('경로를 입력해주세요. ','s'); 
name=input('파일 이름은?' ,'s'); 
graphname=input('그래프 이름은?' ,'s'); 
pathway=strcat(path,'\');
filename=strcat(name,'.xlsx');
label1=input('첫 번째 plot의 이름은?','s');
label2=input('두 번째 plot의 이름은?','s');
label3=input('세 번째 plot의 이름은?','s');
disp('일단 그래프를 그리려면 행렬을 먼저 만들어야 해. 끝이 어딘지만 입력해주면 알아서 집을게.');
    shx1='2'; %엑셀로 그래프 그림+시작점은 항상 2
    shx2=input('각 축의 끝부분은? ','s'); 
        sheetX=strcat('A',shx1,':','A',shx2);
        sheetY=strcat('B',shx1,':','B',shx2);
        sheetY2=strcat('C',shx1,':','C',shx2);
        sheetY3=strcat('D',shx1,':','D',shx2);
X=xlsread(strcat(pathway,filename),1,sheetX);
Y=xlsread(strcat(pathway,filename),1,sheetY);
Y2=xlsread(strcat(pathway,filename),1,sheetY2);
Y3=xlsread(strcat(pathway,filename),1,sheetY3);
    plot(X,Y,'color',[.47 .67 .19],'LineWidth',2);
    hold on
    plot(X,Y2,'color',[.92 .07 .23],'LineWidth',2);
    plot(X,Y3,'-.','color',[.5 .5 .5]); %reference channel 전용 설정입니다. 가급적이면 엑셀 파일의 D열에 reference channel을 올려주세요. 
xlabel('Time(sec)');
ylabel('Pix');
title(graphname);
legend(label1, label2, label3);

 

이거 아직 다 수정 안 된거예요. 버전도 두 개 있어요... 'ㅁ' 

 

<코드 2-합쳐버린 거>

function SLplot (~)
global pathway pathwayload shx1 %어 글로벌 이렇게 쓰는거였어? 
disp('이거 streptavidin하고 linker 한꺼번에 그려주는거야. 다른 그래프 그릴거면 다른 함수 써야되는거 알지? ');
pathway=input('경로를 부시죠. ','s');
pathwayload=strcat(pathway,'\');
SAfile='SA.xlsx';
Lifile='Linker.xlsx';
disp('좋아, 이제 행렬을 만들어볼건데... 각 행렬의 끝부분이 필요해. 엑셀 가서 쉬프트 컨트롤 아래화살표였나...그거 눌러도 되고, 따로 적어둔 게 있으면 더 좋고. ');
shx1='2';
SAshx2=input('streptavidin 축의 끝부분은? ','s');

        sheetSA1=strcat('A',shx1,':','A',SAshx2);
        sheetSA2=strcat('B',shx1,':','B',SAshx2);
        sheetSA3=strcat('C',shx1,':','C',SAshx2);
        sheetSA4=strcat('D',shx1,':','D',SAshx2);
SA1=xlsread(strcat(pathwayload,SAfile),1,sheetSA1);
SA2=xlsread(strcat(pathwayload,SAfile),1,sheetSA2);
SA3=xlsread(strcat(pathwayload,SAfile),1,sheetSA3);
SA4=xlsread(strcat(pathwayload,SAfile),1,sheetSA4);
Lishx2=input('Linker 축의 끝부분은? ','s');
        sheetLi1=strcat('A',shx1,':','A',Lishx2);
        sheetLi2=strcat('B',shx1,':','B',Lishx2);
        sheetLi3=strcat('C',shx1,':','C',Lishx2);
        sheetLi4=strcat('D',shx1,':','D',Lishx2);
Li1=xlsread(strcat(pathwayload,Lifile),1,sheetLi1);
Li2=xlsread(strcat(pathwayload,Lifile),1,sheetLi2);
Li3=xlsread(strcat(pathwayload,Lifile),1,sheetLi3);
Li4=xlsread(strcat(pathwayload,Lifile),1,sheetLi4);
disp('음. 범위는 됐고... 행렬도 OK. ');
%아나 함수 합치기 그지같네 ㅠㅠ 
disp('자, 이제 행렬을 만들었으니 그걸로 그래프를 그릴거야. streptavidin 먼저 해 줄게. ');
figure(1);
    plot(SA1,SA2,'color',[.27 .5 .7],'LineWidth',2);
    hold on
    plot(SA1,SA3,'color',[.52 .81 .47],'LineWidth',2);
    plot(SA1,SA4,'color',[.4 .2 .6],'LineWidth',2);
    xlabel('Time(sec)');
    ylabel('Pix');
    title('Streptavidin')
    legend('ch1','ch2','ch3','Location','southeast');
disp('streptavidin 완료! 다음은 링커~ ');
figure(2);
    plot(Li1,Li2,'color',[.27 .5 .7],'LineWidth',2);
    hold on
    plot(Li1,Li3,'color',[.52 .81 .47],'LineWidth',2);
    plot(Li1,Li4,'color',[.4 .2 .6],'LineWidth',2);
    xlabel('Time(sec)');
    ylabel('Pix');
    title('Linker')
    legend('ch1','ch2','ch3','Location','southeast');
disp('좋아, 이제 저장 한다.');
SAjpg=strcat(pathwayload,'SA.jpg');
Lijpg=strcat(pathwayload,'Linker.jpg');
saveas(figure(1),SAjpg);
saveas(figure(2),Lijpg);

 

<프로그램의 역사>

1. 귀찮아서 그냥 plot만 그리는 함수를 짰음

2. 축 라벨 붙이기 귀찮아서 라벨 추가

3. 그래프 선 일일이 바꾸기 귀찮아서 선 옵션 추가(그 뒤로 선 색깔은 쭉 고정) -여기서 셋 다 실선인 것과 하나는 점선인 것으로 분리

4. 엑셀파일 경로 뒤의 \랑 파일명 뒤의 확장자 고정(...) 역시나 사유는 귀찮아서. 

5. 그래프 레전드 입력 받아서 그리게끔 변경

6. 엑셀로 입력할 때 시발점은 항상 2이므로 고정 -파일명도 고정된 것들 아예 입력 때려박음(그래프 그릴 때 샘플 말고 그 전에 흘려주는 것들도 그리는데 그거 말하는겁니다) 

7. 샘플 흘리기 전에 그리는 그래프 함수 하나로 묶어버림(두 번 그리기 귀찮아서), 이 과정에서 그래프 범례를 우측 하단으로 위치 바꾸고 저장까지 알아서 되게끔 설정. (경로는 global로 때려박음)

아 참고로 샘플 그래프에도 이 기능 추가해야 하는데 지금 휴가라 안하고 있습니다. (...) 

 

뭔 기능이 죄다 귀찮아서 추가되냐 

 

작성자
title: 인스타그램왕뚠뚠돈까스라이츄 66 Lv. (67%) 355650/359120EXP

안녕하세요 서른입니다 

네 30대입니다

그럼 20000

댓글 2

kingsway
감사합니다~
comment menu
2017.09.18. 16:19

신고

"kingsway님의 댓글"

이 댓글을 신고 하시겠습니까?

hillasen
잘쓸게요~~~
comment menu
2018.02.17. 20:39

신고

"hillasen님의 댓글"

이 댓글을 신고 하시겠습니까?

권한이 없습니다.
번호 분류 제목 글쓴이 날짜 조회 수
76 코드 [PHP] 이미지를 원하는 크기(원본비율 유지)로 리사이즈 하여 출력 (원본 이미지는 수정하지 않습니다) 6 이니스프리 이니스프리 18.12.20.18:42 3030
75 코드 새 글 자동 댓글 스크립트 (AutoHotkey) 9 이니스프리 이니스프리 17.11.26.20:22 1999
74 코드 파이썬을 이용한 텔레그램 새 글 알림 (허접합니다) 5 이니스프리 이니스프리 17.11.19.18:55 1806
73 코드 [Python] 텔레그램을 이용한 게시판 새 글 알림봇 7 이니스프리 이니스프리 18.12.02.16:25 1697
72 코드 [파이썬] Requests를 사용한 네이버 카페 크롤링 - 일정수 이상의 리플이 달린 게시글만 텔레그램 알림 3 image 이니스프리 이니스프리 19.11.17.15:20 1539
71 코드 [Python] Selenium을 이용하여 특정 element를 캡처하는 스크립트 2 image 이니스프리 이니스프리 19.07.03.20:17 1485
70 코드 [Python] 싸이월드 미니홈피 백업 스크립트 이니스프리 이니스프리 19.11.07.20:06 1190
69 코드 [오토핫키] 구글 드라이브의 공유링크를 이미지 호스팅을 위한 다이렉트 링크로 바꿔주는 스크립트 10 image 이니스프리 이니스프리 18.09.25.16:54 1095
코드 엑셀 읽어서 그래프 그려주는 함수 2 왕뚠뚠돈까스라이츄 title: 인스타그램왕뚠뚠돈까스.. 17.08.03.22:06 1045
67 코드 CMD로 로컬 연결 고정 IP 설정하기 1 humit title: 황금 서버 (30일)humit 18.02.06.11:33 879
66 코드 유튜브에 약간의 기능을 추가 해주는 크롬 확장 프로그램. 11 image Hanam09 Hanam09 18.01.26.22:01 830
65 코드 [오토핫키] 특정 사이트에 대한 ping 테스트 결과를 실행시간과 함께 로그 파일로 저장하는 스크립트 2 이니스프리 이니스프리 18.09.22.10:59 771
64 코드 잘못 쓰면 컴퓨터가 날아가는 코드 29 제르엘 title: 생일 케이크 (1년권)제르엘 18.07.08.22:36 740
63 자료 even_move - 감성적인 에러 페이지 7 image TVJ title: 열려라 맛스타의 자물쇠TVJ 17.08.08.22:36 669
62 자료 소셜XE / 기존 통합 로그인 스킨 V2.2 2 image 맛스타 title: 생일 케이크 (1년권)맛스타 17.06.28.00:10 648
61 자료 AdminLTE용 에디터 스타일 4 file title: 은메달도다 17.07.07.20:48 620
60 코드 [Python] 네이버 모바일 이미지 검색에서의 이미지 파일을 멀티스레드로 다운받고 1개의 파일로 병합 11 image 이니스프리 이니스프리 19.07.12.01:22 617
59 코드 엑셀파일 불러서 히스토그램 그려주는 함수 왕뚠뚠돈까스라이츄 title: 인스타그램왕뚠뚠돈까스.. 17.08.03.21:53 599
58 코드 사이트 서버 이전 (또는 미러링 사이트 구축) 쉽게하는 스크립트 1 맛스타 title: 생일 케이크 (1년권)맛스타 18.01.14.01:09 598
57 코드 [아미나] Dropbox API를 이용한 이미지 호스팅 보드스킨 11 image 이니스프리 이니스프리 19.07.13.10:01 593