Mercurial > hg > do-we-sing-like-we-speak
diff plotData.m @ 0:26494c0d9ffd
Repo Creation
author | DaveM <d.j.moffat@qmul.ac.uk> |
---|---|
date | Wed, 14 Jan 2015 11:39:40 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plotData.m Wed Jan 14 11:39:40 2015 +0000 @@ -0,0 +1,101 @@ +function plotData(smFactor, normFact, quest, inton, individuals, meanPlot) + + +%% +% Written by Dave Moffat Jan 2015 +% plotData reads in all csv files from attached dataset and analyses the +% data to produce and save a range of plots based on imput values +% smFactor: Smoothing factor used to smooth initial noisy data (50) +% normFact: Boolean Flag as whether to normalise time and frequency +% axes of data (1) +% quest: Specific question types, eg: 'YN', Wh', 'all' +% inton: Specific intonation tyoes, eg: 'RF', 'F', 'FR', 'R', 'H' +% individuals: Boolean flag to plot all individual intonation patterns +% meanPlot: Boolean flag to plot mean for intonation patterns + + + +trackData = readCSV('DataSetSummary.csv'); +trackRange = size(trackData,1); +plotCol = ['b','k','y','m','c','r','g']; +plotCol = ['k','k']; +colIndex = 1; +figure; +if(meanPlot) + zerosPlot = [0:0.1:1]; + totalF = zeros(1,length(zerosPlot)); +end +if(~individuals) + hold on; +end + +qList = findInCellArray(trackData,5,quest); +if(isempty(qList)) + qList = [1:trackRange]; +end +iList = findInCellArray(trackData,6,inton); +if(isempty(iList)) + iList = [1:trackRange]; +end + +trackSearch = intersect(qList, iList); +noTracks = length(trackSearch); + +for i = trackSearch + i + songTrack = csvread(strcat('T',num2str(i),'/01m.csv')); + songTrack = songTrack(:,1:2); + if(normFact) +% Vertical + songTrack(:,2) = songTrack(:,2) - min(songTrack(:,2)); + songTrack(:,2) = songTrack(:,2) / max(songTrack(:,2)); +% Horizontal + songTrack(:,1) = songTrack(:,1) - min(songTrack(:,1)); + songTrack(:,1) = songTrack(:,1) / max(songTrack(:,1)); + end + if(smFactor > 0) + songTrack(:,2) = smooth(songTrack(:,2),smFactor); + end + plot(songTrack(:,1),songTrack(:,2),plotCol(mod(colIndex,length(plotCol))+1)); + + if(individuals) + xlabel('Normalised Time'); + ylabel('Normalised Frequency'); + plotTitle =strcat('Question ',num2str(i),' Data Plot'); + title(plotTitle); + saveas(gcf,strcat('plots/plot',num2str(i)),'jpg'); + else + colIndex = colIndex +1; + end + if(meanPlot) + if(isnan(songTrack(:,1))) + noTracks = noTracks - 1; + else + songTrack(:,1); + totalF = totalF + interp1(songTrack(:,1),songTrack(:,2),zerosPlot); + end + end +end + +% if(~individuals) +% xlabel('Normalised Time'); +% ylabel('Normalised Frequency'); +% plotTitle = strcat('plots/Questions:',quest,'-Intonation:',inton,' plot'); +% title(plotTitle); +% filename = strcat(quest,'Q-',inton,'I'); +% saveas(gcf,filename,'jpg'); +% end +if(meanPlot) + totalF = totalF / length(trackSearch); +% figure; + plot(zerosPlot,totalF,'LineWidth',2); + xlabel('Normalised Time'); + ylabel('Normalised Frequency'); + plotTitle = strcat('plots/Questions:',quest,'-Intonation:',inton,' All Intonations and Mean plot'); +% title(plotTitle); + filename = strcat(quest,'Q-',inton,'-IMean-ALL'); + saveas(gcf,filename,'pdf'); +end + + +end \ No newline at end of file