data = {}; data(end+1,:) = {'8/90', 121.8}; data(end+1,:) = {'9/90', 125.8}; data(end+1,:) = {'10/90', 133.5}; data(end+1,:) = {'11/90', 132.4}; data(end+1,:) = {'12/90', 134.1}; data(end+1,:) = {'1/91', 118}; data(end+1,:) = {'2/91', 109.4}; data(end+1,:) = {'3/91', 104}; data(end+1,:) = {'4/91', 107.6}; data(end+1,:) = {'5/91', 112.6}; data(end+1,:) = {'6/91', 112.8}; data(end+1,:) = {'7/91', 109.6}; data(end+1,:) = {'8/91', 111.5}; data(end+1,:) = {'9/91', 110.9}; data(end+1,:) = {'10/91', 108.8}; data(end+1,:) = {'11/91', 109.9}; data(end+1,:) = {'12/91', 107.6}; data(end+1,:) = {'1/92', 102.2}; data(end+1,:) = {'2/92', 100.6}; data(end+1,:) = {'3/92', 101.3}; data(end+1,:) = {'4/92', 105.2}; data(end+1,:) = {'5/92', 110.7}; data(end+1,:) = {'6/92', 114.5}; data(end+1,:) = {'7/92', 113.7}; data(end+1,:) = {'8/92', 112.2}; data(end+1,:) = {'9/92', 112.2}; data(end+1,:) = {'10/92', 111.4}; data(end+1,:) = {'11/92', 111.1}; data(end+1,:) = {'12/92', 107.8}; data(end+1,:) = {'1/93', 106.2}; data(end+1,:) = {'2/93', 105.4}; data(end+1,:) = {'3/93', 105.2}; data(end+1,:) = {'4/93', 107.8}; data(end+1,:) = {'5/93', 110}; data(end+1,:) = {'6/93', 109.7}; data(end+1,:) = {'7/93', 107.8}; data(end+1,:) = {'8/93', 106.2}; data(end+1,:) = {'9/93', 105}; data(end+1,:) = {'10/93', 109.2}; data(end+1,:) = {'11/93', 106.6}; data(end+1,:) = {'12/93', 101.4}; data(end+1,:) = {'1/94', 99.8}; data(end+1,:) = {'2/94', 100.9}; data(end+1,:) = {'3/94', 100.8}; data(end+1,:) = {'4/94', 102.7}; data(end+1,:) = {'5/94', 104.7}; data(end+1,:) = {'6/94', 107.8}; data(end+1,:) = {'7/94', 110.6}; data(end+1,:) = {'8/94', 115.5}; data(end+1,:) = {'9/94', 114.4}; data(end+1,:) = {'10/94', 111.4}; data(end+1,:) = {'11/94', 111.6}; data(end+1,:) = {'12/94', 109.1}; data(end+1,:) = {'1/95', 108.2}; data(end+1,:) = {'2/95', 107.3}; data(end+1,:) = {'3/95', 107.2}; data(end+1,:) = {'4/95', 111.1}; data(end+1,:) = {'5/95', 117.8}; data(end+1,:) = {'6/95', 119.2}; data(end+1,:) = {'7/95', 115.4}; data(end+1,:) = {'8/95', 112.3}; data(end+1,:) = {'9/95', 111.1}; data(end+1,:) = {'10/95', 108.7}; data(end+1,:) = {'11/95', 106.2}; data(end+1,:) = {'12/95', 107.1}; data(end+1,:) = {'1/96', 109}; data(end+1,:) = {'2/96', 108.9}; data(end+1,:) = {'3/96', 113.7}; data(end+1,:) = {'4/96', 123.1}; data(end+1,:) = {'5/96', 127.9}; data(end+1,:) = {'6/96', 125.6}; data(end+1,:) = {'7/96', 122.7}; data(end+1,:) = {'8/96', 120.7}; data(end+1,:) = {'9/96', 120.2}; data(end+1,:) = {'10/96', 120.4}; data(end+1,:) = {'11/96', 123.2}; data(end+1,:) = {'12/96', 123.5}; data(end+1,:) = {'1/97', 123.6}; data(end+1,:) = {'2/97', 123}; data(end+1,:) = {'3/97', 120.5}; data(end+1,:) = {'4/97', 119.9}; data(end+1,:) = {'5/97', 120}; data(end+1,:) = {'6/97', 119.8}; data(end+1,:) = {'7/97', 117.4}; data(end+1,:) = {'8/97', 122.4}; data(end+1,:) = {'9/97', 123.1}; data(end+1,:) = {'10/97', 119.7}; data(end+1,:) = {'11/97', 117.1}; data(end+1,:) = {'12/97', 113.1}; data(end+1,:) = {'1/98', 108.6}; data(end+1,:) = {'2/98', 104.9}; data(end+1,:) = {'3/98', 101.7}; data(end+1,:) = {'4/98', 103}; data(end+1,:) = {'5/98', 106.4}; data(end+1,:) = {'6/98', 106.4}; data(end+1,:) = {'7/98', 105.5}; data(end+1,:) = {'8/98', 102.6}; data(end+1,:) = {'9/98', 100.9}; data(end+1,:) = {'10/98', 101.9}; data(end+1,:) = {'11/98', 99.5}; data(end+1,:) = {'12/98', 94.5}; data(end+1,:) = {'1/99', 93.9}; data(end+1,:) = {'2/99', 92.1}; data(end+1,:) = {'3/99', 98.2}; data(end+1,:) = {'4/99', 113.1}; data(end+1,:) = {'5/99', 113.1}; data(end+1,:) = {'6/99', 111.4}; data(end+1,:) = {'7/99', 115.8}; data(end+1,:) = {'8/99', 122.1}; data(end+1,:) = {'9/99', 125.6}; data(end+1,:) = {'10/99', 124.4}; data(end+1,:) = {'11/99', 125.1}; data(end+1,:) = {'12/99', 127.3}; data(end+1,:) = {'1/00', 128.9}; data(end+1,:) = {'2/00', 137.7}; data(end+1,:) = {'3/00', 151.6}; data(end+1,:) = {'4/00', 146.5}; data(end+1,:) = {'5/00', 148.7}; data(end+1,:) = {'6/00', 163.3}; data(end+1,:) = {'7/00', 155.1}; data(end+1,:) = {'8/00', 146.5}; data(end+1,:) = {'9/00', 155}; data(end+1,:) = {'10/00', 153.2}; data(end+1,:) = {'11/00', 151.7}; data(end+1,:) = {'12/00', 144.3}; data(end+1,:) = {'1/01', 144.7}; data(end+1,:) = {'2/01', 145}; data(end+1,:) = {'3/01', 140.9}; data(end+1,:) = {'4/01', 155.2}; data(end+1,:) = {'5/01', 170.2}; data(end+1,:) = {'6/01', 161.6}; data(end+1,:) = {'7/01', 142.1}; data(end+1,:) = {'8/01', 142.1}; data(end+1,:) = {'9/01', 152.2}; data(end+1,:) = {'10/01', 131.5}; data(end+1,:) = {'11/01', 117.1}; data(end+1,:) = {'12/01', 108.6}; data(end+1,:) = {'1/02', 110.7}; data(end+1,:) = {'2/02', 111.4}; data(end+1,:) = {'3/02', 124.9}; data(end+1,:) = {'4/02', 139.7}; data(end+1,:) = {'5/02', 139.2}; data(end+1,:) = {'6/02', 138.2}; data(end+1,:) = {'7/02', 139.7}; data(end+1,:) = {'8/02', 139.6}; data(end+1,:) = {'9/02', 140}; data(end+1,:) = {'10/02', 144.5}; data(end+1,:) = {'11/02', 141.9}; data(end+1,:) = {'12/02', 138.6}; data(end+1,:) = {'1/03', 145.8}; data(end+1,:) = {'2/03', 161.3}; data(end+1,:) = {'3/03', 169.3}; data(end+1,:) = {'4/03', 158.9}; data(end+1,:) = {'5/03', 149.7}; data(end+1,:) = {'6/03', 149.3}; data(end+1,:) = {'7/03', 151.3}; data(end+1,:) = {'8/03', 162}; data(end+1,:) = {'9/03', 167.9}; data(end+1,:) = {'10/03', 156.4}; data(end+1,:) = {'11/03', 151.2}; data(end+1,:) = {'12/03', 147.9}; data(end+1,:) = {'1/04', 157.2}; data(end+1,:) = {'2/04', 164.8}; data(end+1,:) = {'3/04', 173.6}; data(end+1,:) = {'4/04', 179.8}; data(end+1,:) = {'5/04', 198.3}; data(end+1,:) = {'6/04', 196.9}; data(end+1,:) = {'7/04', 191.1}; data(end+1,:) = {'8/04', 187.8}; data(end+1,:) = {'9/04', 187}; data(end+1,:) = {'10/04', 200}; data(end+1,:) = {'11/04', 197.9}; data(end+1,:) = {'12/04', 184.1}; data(end+1,:) = {'1/05', 183.1}; data(end+1,:) = {'2/05', 191}; data(end+1,:) = {'3/05', 207.9}; data(end+1,:) = {'4/05', 224.3}; data(end+1,:) = {'5/05', 216.1}; data(end+1,:) = {'6/05', 215.6}; data(end+1,:) = {'7/05', 229}; data(end+1,:) = {'8/05', 248.6}; data(end+1,:) = {'9/05', 290.3}; data(end+1,:) = {'10/05', 271.7}; data(end+1,:) = {'11/05', 225.7}; data(end+1,:) = {'12/05', 218.5}; data(end+1,:) = {'1/06', 231.6}; data(end+1,:) = {'2/06', 228}; data(end+1,:) = {'3/06', 242.5}; data(end+1,:) = {'4/06', 274.2}; data(end+1,:) = {'5/06', 290.7}; data(end+1,:) = {'6/06', 288.5}; data(end+1,:) = {'7/06', 298.1}; data(end+1,:) = {'8/06', 295.2}; data(end+1,:) = {'9/06', 255.5}; data(end+1,:) = {'10/06', 224.5}; data(end+1,:) = {'11/06', 222.9}; data(end+1,:) = {'12/06', 231.3}; data(end+1,:) = {'1/07', 224}; data(end+1,:) = {'2/07', 227.8}; data(end+1,:) = {'3/07', 256.3}; data(end+1,:) = {'4/07', 284.5}; data(end+1,:) = {'5/07', 314.6}; data(end+1,:) = {'6/07', 305.6}; data(end+1,:) = {'7/07', 296.5}; data(end+1,:) = {'8/07', 278.6}; data(end+1,:) = {'9/07', 280.3}; data(end+1,:) = {'10/07', 280.3}; data(end+1,:) = {'11/07', 308}; data(end+1,:) = {'12/07', 301.8}; data(end+1,:) = {'1/08', 304.3}; data(end+1,:) = {'2/08', 302.8}; gas = cell2struct(data, {'date', 'price'}, 2); ndates = numel(gas); prices = [gas.price]; [M{1:ndates}] = deal(gas.date); % Prune labels to last two digits for k = 1 : ndates Year{k} = M{k}(end-1:end); end figure(1) clf % linear plot with color changing according to y-value X = [1:ndates-1; 2:ndates]; Y = [prices(1:ndates-1) ; prices(2:ndates)]/100; % Choose colors for lines based on y-value % Only use subset of available colors cm = colormap(hot); [mn,mx] = minmax(prices); pix = round((32-1)*(prices-mn)/(mx-mn))+5; clrs = cm(pix,:); % Plot the lines then change color L = line(X,Y); for k = 1 : numel(L) set(L(k),'Color',clrs(k,:),'LineWidth',2); end % Change the aspect ratio of the plot set(gca,'PlotBoxAspectRatio',[2 1 1]) % Set x-ticks at January of every year dateind = [6:12:ndates]; set(gca,'XTick',dateind,'XTickLabel',Year(dateind)); axis([1 ndates 0.5 3.50]) % Plot dashed lines from point where price passes even dollar amount line([1 ndates],[1 1],'Color','k','LineStyle','--') ix2 = min(find(prices/100 > 2)); line([ix2 ndates],[2 2],'Color','k','LineStyle','--') ix3 = min(find(prices/100 > 3)); line([ix3 ndates],[3 3],'Color','k','LineStyle','--') set(gca,'YAxisLocation','right') % Set ytick and label to only show even dollar amounts set(gca,'YTick',[1 2 3],'YTickLabel',{'$1', '$2', '$3'}); % Label the axes and set font size set(gca,'FontSize',14) xlabel('Year', 'FontSize', 18); ylabel('Price', 'FontSize', 18);