Skip to content

Commit bc5d7a4

Browse files
committed
ok
1 parent 2cae5ef commit bc5d7a4

File tree

7 files changed

+239
-74
lines changed

7 files changed

+239
-74
lines changed

cpumemoryrxtxjmeterplotSUM.m

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
format longG
22

3-
stringCSV = 'Network TX-data-as-seriestocolumns-2021-06-05 00_14_19';
3+
stringCSV = 'CPU-data-as-seriestocolumns-2021-06-05 00_07_36';
44
bytesDevider = 1000000;
5-
% bytesDevider = 1;
5+
bytesDevider = 1;
66
dataID = '5';
7-
namespace = 'ingress';
7+
namespace = 'redis';
88
data = readtable(strcat('/Users/mymac/Documents/SCRIPTSHEET/SKRIPSI/data_grafana/',dataID,'/',namespace,'/',strcat(stringCSV,'.csv')), 'ReadVariableNames', false, 'HeaderLines', 2);
99

1010

@@ -92,12 +92,12 @@
9292
% title({'CPU SUM: ingress (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
9393
% title({'Memory SUM: ingress (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
9494
% title({'Network RX SUM: ingress (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
95-
title({'Network TX SUM: ingress (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
95+
% title({'Network TX SUM: ingress (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
9696

9797

9898
xlabel('Elapsed time (minutes)','FontSize',15);
99-
ylabel(ylabelstruput,'FontSize',15);
100-
ylim([0,max(B(:,size(B,2)))*1.2])
99+
ylabel(ylabelscpu,'FontSize',15);
100+
% ylim([0,max(B(:,size(B,2)))*1.2])
101101
% xlim([min(x),max(x)])
102102
pos = get(gcf,'Position');
103103
set(findall(gcf,'-property','FontName'),'FontName','Times New Roman');

grafanaplot.m

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
format longG
22
clear all;close all;
3-
stringCSV = 'Network TX-data-as-seriestocolumns-2021-06-05 00_14_19';
3+
stringCSV = 'Scaling Nodes Count-data-as-seriestocolumns-2021-06-05 02_09_52';
44
bytesDevider = 1000000;
5-
% bytesDevider = 1;
5+
bytesDevider = 1;
66
dataID = '5';
7-
namespace = 'ingress';
7+
namespace = 'nodes';
88
data = readtable(strcat(strcat(strcat('/Users/mymac/Documents/SCRIPTSHEET/SKRIPSI/data_grafana/',dataID),'/'),strcat(strcat(strcat(namespace,'/'),stringCSV),'.csv')), 'ReadVariableNames', false, 'HeaderLines', 2);
99

1010
% ini untuk format date seperti halnya di jmeter ya
@@ -31,7 +31,7 @@
3131
ylabels3='TCP connections';
3232
yredis='Command executed per second';
3333
ythread='Number of active threads';
34-
legend_base_name = 'ingress-pod-';
34+
legend_base_name = 'redis-pods-';
3535
%legend_base_name = 'Worker-';
3636
% legend_base_name = 'redis-node-';
3737
% legend_base_name = 'iotmyth-cpu-';
@@ -82,11 +82,11 @@
8282
ax.GridAlpha = 0.3;
8383
ax.LineWidth = 0.9;
8484
set(gca,'FontSize',16);
85-
% legend('long unregistered','not started','ready','unready','unregistered');
85+
legend('long unregistered','not started','ready','unready','unregistered');
8686
legend('show');
8787
lgd = legend;
8888
lgd.FontSize=10;
89-
% lgd.Location = 'northWest';
89+
lgd.Location = 'northWest';
9090
% lgd.Location = 'north';
9191

9292

@@ -102,21 +102,20 @@
102102
%title({'Network TX: ingress (HTTP 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
103103
%title({'Network Load Balancer (HTTP 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
104104

105-
% title({'Pod Count: ingress (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
105+
% title({'Pod Count: redis (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
106106
% title({'CPU SUM: ingress (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
107-
% title({'CPU: ingress (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
107+
% title({'CPU: redis (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
108108
% title({'Memory: ingress (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
109109
% title({'Node Memory: redis cluster (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
110110
% title({'Node Command: redis cluster (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
111-
% title({'Node scaling (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
111+
title({'Node scaling (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
112112
% title({'Network RX: ingress (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
113-
title({'Network TX: ingress (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
113+
% title({'Network TX: ingress (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
114114
%title({'Network Load Balancer (MQTT 50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
115115

116116

117-
118117
xlabel('Elapsed time (minutes)','FontSize',15);
119-
ylabel(ylabelstruput,'FontSize',15);
118+
ylabel(ynodes,'FontSize',15);
120119
pos = get(gcf,'Position');
121120
ymax = max(data{:,2});
122121
% ylim([0,ymax(1)*1.2])

jmeterplot.m

Lines changed: 39 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
format longG
22
clear all;close all;
3-
stringCSV = 'LatenciesOverTime';
4-
dataID = '5';
3+
stringCSV = 'ResponseCodesPerSecond';
4+
dataID = '6';
55
bytesDevider=1000000;
66
bytesDevider=1;
77
data = readtable(strcat('/Users/mymac/Documents/SCRIPTSHEET/SKRIPSI/data_jmeter/',dataID,'/', stringCSV,'.csv'), 'ReadVariableNames', false, 'HeaderLines', 1);
@@ -29,7 +29,7 @@
2929
% legend_base_name = 'Worker-';
3030
legend_base_name = 'HTTP Request-';
3131

32-
set(gca, 'YScale', 'log')
32+
% set(gca, 'YScale', 'log')
3333

3434
% kalo ini format number dalam menit elapsed time
3535
x = (datenum(datestr(data{:,1}, 'yyyy-mm-dd hh:MM:ss.fff')) - datenum(datestr(data{1,1}, 'yyyy-mm-dd hh:MM:ss.fff'))) * 100000/60;
@@ -44,28 +44,32 @@
4444
end
4545

4646
for i=1:size(data,2)-1
47-
if(size(data,2) <= 2)
47+
if(size(data,2) < 2)
4848
% ini untuk khusus yang 1 kolom saja
4949
scatter(x,data{:,i+1},strcat(colors{color_counter},markers{marker_counter}),'DisplayName',strcat(legend_base_name,sprintf('%.0f',i)));
5050
else
5151
if(strcmp(stringCSV, 'BytesThroughputOverTime') || strcmp(stringCSV,'ResponseCodesPerSecond') || strcmp(stringCSV,'TransactionsPerSecond'))
5252
marker_size = 12;
5353
markers = {'.'};
54-
colors = {'r','b','g','m'};
54+
% colors = {'b','r'};
55+
% colors = {'r','b',[0 0.7 0],'m'};
56+
colors = {'r','b',[0 0.7 0],'m','cyan','k',[0.1 0.6 0.6]};
57+
% colors = {'r','b','k','m'};
58+
% colors = {'k','r','b','c','m',[0 0.7 0]};
5559
ylabel(ylabels,'FontSize',14);
56-
plot(x,data{:,i+1}/bytesDevider,strcat(colors{color_counter},markers{marker_counter}),'MarkerSize',marker_size);
60+
plt(i) = plot(x,data{:,i+1}/bytesDevider,strcat(markers{marker_counter}),'MarkerSize',marker_size,'Color',colors{color_counter});
5761
else
5862

5963

6064
% markers = {''};
6165
% lines = {'--','-.','-'};
62-
% plot(x,data{:,i+1},strcat(lines{line_counter},strcat(colors{color_counter},markers{marker_counter})),'MarkerSize',marker_size,'LineWidth',line_width,'DisplayName',strcat(legend_base_name,sprintf('%.0f',i)));
66+
plot(x,data{:,i+1},strcat(lines{line_counter},strcat(colors{color_counter},markers{marker_counter})),'MarkerSize',marker_size,'LineWidth',line_width,'DisplayName',strcat(legend_base_name,sprintf('%.0f',i)));
6367

6468
% UNTUK MQTT YANG DATA RANGE JAUH
65-
marker_size = 8;
66-
markers = {'.'};
67-
colors = {'r',[0 0.7 0],'b'};
68-
plot(x,data{:,i+1},markers{marker_counter},'MarkerSize',marker_size,'Color',colors{color_counter});
69+
% marker_size = 8;
70+
% markers = {'.'};
71+
% colors = {'r',[0 0.7 0],'b'};
72+
% plot(x,data{:,i+1},markers{marker_counter},'MarkerSize',marker_size,'Color',colors{color_counter});
6973
end
7074
end
7175

@@ -95,41 +99,49 @@
9599

96100
ax = gca;
97101
ax.YAxis.Exponent = 0;
102+
ax.YAxis.TickLabelFormat = '%.0f';
98103
ax.GridLineStyle = ':';
99104
ax.GridAlpha = 0.3;
100105
ax.LineWidth = 0.9;
101106
set(gca,'FontSize',16);
102107

103108

104109
if(strcmp(stringCSV, 'BytesThroughputOverTime') || strcmp(stringCSV,'ResponseCodesPerSecond') || strcmp(stringCSV,'TransactionsPerSecond'))
105-
legend('Bytes received per second','Bytes sent per second');
110+
% legend('Bytes received per second','Bytes sent per second');
106111
% legend('HTTP failure','HTTP success');
107-
% legend('200 OK','502 Bad Gateway','504 Gateway Timeout','Non HTTP Timeout');
112+
legend('200 OK','502 Bad Gateway','504 Gateway Timeout','Non HTTP Timeout: java','Non HTTP Timeout: socket','Non HTTP Timeout','timeout');
113+
% legend('200 OK','500 Internal Server Error','501 Not Implemented','502 Bad Gateway');
114+
% legend('MQTT Connect (failure)','MQTT Connect (success)','MQTT Disconnect (failure)','MQTT Disconnect (success)','MQTT Publish (failure)','MQTT Publish (success)','box','on');
115+
% gridLegend(plt,1,'location','north');
116+
% columnlegend(2,{'MQTT Connect (failure)','MQTT Connect (success)','MQTT Disconnect (failure)','MQTT Disconnect (success)','MQTT Publish (failure)','MQTT Publish (success)'},'Location','north');
117+
108118
end
109-
legend('MQTT Connect','MQTT Disconnect','MQTT Publish');
119+
% legend('MQTT Connect','MQTT Disconnect','MQTT Publish');
110120
legend('show');
111121
lgd = legend;
112-
%lgd.FontSize=10;
113-
% lgd.Location = 'northWest';
122+
123+
% lgd.FontSize=7;
124+
% lgd.Orientation='Horizontal';
125+
lgd.Location = 'northwest';
114126
% lgd.Location = 'south';
115127
set(gcf,'Units','Inches');
116128

117-
% title({'Threads State over Time (50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
118-
% title({'','HTTP Response Times over Time (50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
119-
%title({'HTTP Latencies over Time (50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
129+
% title({'Threads State over Time (1M Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
130+
% title({'HTTP Response Times over Time (1M Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
131+
% title({'HTTP Latencies over Time (1M Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
120132

121-
% title({'Threads State over Time (50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
122-
% title({'MQTT Response Times over Time (50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
123-
title({'MQTT Latencies over Time (50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
133+
% title({'Threads State over Time (1M Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
134+
% title({'MQTT Response Times over Time (1M Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
135+
% title({'MQTT Latencies over Time (1M Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
124136

125-
% title({'Response Times Percentile (50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
126-
% title({'Transactions per second (50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
127-
% title({'Bytes Throughput over Time (50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',15);
128-
%title({'Response Codes per second (50K Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
137+
% title({'Response Times Percentile (1M Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
138+
% title({'Transactions per second (1M Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
139+
% title({'Bytes Throughput over Time (1M Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',15);
140+
title({'Response Codes per second (1M Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
129141

130142
xlabel('Elapsed time (minutes), Granulation: 500 ms','FontSize',15);
131143
% xlabel('Percentiles (%)','FontSize',15);
132-
ylabel({ylabelslat},'FontSize',15);
144+
ylabel({ylabelsrescode},'FontSize',15);
133145
pos = get(gcf,'Position');
134146
set(findall(gcf,'-property','FontName'),'FontName','Times New Roman');
135147
set(gcf,'PaperPositionMode','Auto','PaperUnits','Inches','PaperSize',[pos(3), pos(4)]);

jmeterplot.m~

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
format longG
2+
clear all;close all;
3+
stringCSV = 'BytesThroughputOverTime';
4+
dataID = '6';
5+
bytesDevider=1000000;
6+
bytesDevider=1;
7+
data = readtable(strcat('/Users/mymac/Documents/SCRIPTSHEET/SKRIPSI/data_jmeter/',dataID,'/', stringCSV,'.csv'), 'ReadVariableNames', false, 'HeaderLines', 1);
8+
9+
% ini untuk format date seperti halnya di jmeter ya
10+
% x = seconds((datenum(datestr(data.ElapsedTime, 'yyyy-mm-dd hh:MM:ss.fff')) - datenum(datestr(data{1,1}, 'yyyy-mm-dd hh:MM:ss.fff'))) * 100000);
11+
% x.Format = 'hh:mm:ss';
12+
13+
markers = {'+','*','.','o','x','v','d','^','s','>','<','v','p','h','p','v','<','>','s','^','d','v','x','o','.','*'};
14+
colors = {'r','b','m','k','y','c','g','r','b','m','k','y'};
15+
lines = {'-','--',':','-.',':','--'};
16+
line_width = 0.9;
17+
marker_size = 5;
18+
marker_counter = 1;
19+
color_counter = 1;
20+
line_counter = 1;
21+
ylabels='Response times (ms)';
22+
ylabelslat = 'Response latencies (ms)';
23+
ytrans= 'Number of transactions per second';
24+
ylabelsrescode = 'Number of responses per second ';
25+
ylabels2='Mega Bytes (MB)';
26+
ylabelstruput='Mega Bytes (MB) per second';
27+
ylabels3='TCP connections';
28+
ythread='Number of active threads';
29+
% legend_base_name = 'Worker-';
30+
legend_base_name = 'HTTP Request-';
31+
32+
set(gca, 'YScale', 'log')
33+
34+
% kalo ini format number dalam menit elapsed time
35+
x = (datenum(datestr(data{:,1}, 'yyyy-mm-dd hh:MM:ss.fff')) - datenum(datestr(data{1,1}, 'yyyy-mm-dd hh:MM:ss.fff'))) * 100000/60;
36+
% ini untuk data x yang pure number aja, bukan elapsed time
37+
% x = data{:,1};
38+
39+
hold on
40+
if(size(data,2) == 2)
41+
markers = {'.'};
42+
colors = {'r'};
43+
ylabel(ylabels,'FontSize',14);
44+
end
45+
46+
for i=1:size(data,2)-1
47+
if(size(data,2) <= 2)
48+
% ini untuk khusus yang 1 kolom saja
49+
scatter(x,data{:,i+1},strcat(colors{color_counter},markers{marker_counter}),'DisplayName',strcat(legend_base_name,sprintf('%.0f',i)));
50+
else
51+
if(strcmp(stringCSV, 'BytesThroughputOverTime') || strcmp(stringCSV,'ResponseCodesPerSecond') || strcmp(stringCSV,'TransactionsPerSecond'))
52+
marker_size = 12;
53+
markers = {'.'};
54+
% colors = {'r','b','g','m'};
55+
colors = {'r','b','k','m'};
56+
% colors = {'k','r','b','c','m',[0 0.7 0]};
57+
ylabel(ylabels,'FontSize',14);
58+
plt(i) = plot(x,data{:,i+1}/bytesDevider,strcat(markers{marker_counter}),'MarkerSize',marker_size,'Color',colors{color_counter});
59+
else
60+
61+
62+
% markers = {''};
63+
% lines = {'--','-.','-'};
64+
plot(x,data{:,i+1},strcat(lines{line_counter},strcat(colors{color_counter},markers{marker_counter})),'MarkerSize',marker_size,'LineWidth',line_width,'DisplayName',strcat(legend_base_name,sprintf('%.0f',i)));
65+
66+
% UNTUK MQTT YANG DATA RANGE JAUH
67+
% marker_size = 8;
68+
% markers = {'.'};
69+
% colors = {'r',[0 0.7 0],'b'};
70+
% plot(x,data{:,i+1},markers{marker_counter},'MarkerSize',marker_size,'Color',colors{color_counter});
71+
end
72+
end
73+
74+
if mod(i, size(markers,2)) == 0
75+
marker_counter = 1;
76+
else
77+
marker_counter=marker_counter+1;
78+
end
79+
80+
if mod(i, size(colors,2)) == 0
81+
color_counter = 1;
82+
else
83+
color_counter=color_counter+1;
84+
end
85+
86+
if mod(i,size(lines,2)) == 0
87+
line_counter = 1;
88+
else
89+
line_counter=line_counter+1;
90+
end
91+
end
92+
93+
94+
95+
box on;
96+
grid on;
97+
98+
ax = gca;
99+
ax.YAxis.Exponent = 0;
100+
ax.GridLineStyle = ':';
101+
ax.GridAlpha = 0.3;
102+
ax.LineWidth = 0.9;
103+
set(gca,'FontSize',16);
104+
105+
106+
if(strcmp(stringCSV, 'BytesThroughputOverTime') || strcmp(stringCSV,'ResponseCodesPerSecond') || strcmp(stringCSV,'TransactionsPerSecond'))
107+
% legend('Bytes received per second','Bytes sent per second');
108+
% legend('HTTP failure','HTTP success');
109+
% legend('200 OK','502 Bad Gateway','504 Gateway Timeout','Non HTTP Timeout');
110+
legend('200 OK','500 Internal Server Error','501 Not Implemented','502 Bad Gateway');
111+
% legend('MQTT Connect (failure)','MQTT Connect (success)','MQTT Disconnect (failure)','MQTT Disconnect (success)','MQTT Publish (failure)','MQTT Publish (success)','box','on');
112+
% gridLegend(plt,1,'location','north');
113+
% columnlegend(2,{'MQTT Connect (failure)','MQTT Connect (success)','MQTT Disconnect (failure)','MQTT Disconnect (success)','MQTT Publish (failure)','MQTT Publish (success)'},'Location','north');
114+
115+
end
116+
% legend('MQTT Connect','MQTT Disconnect','MQTT Publish');
117+
legend('show');
118+
lgd = legend;
119+
120+
% lgd.FontSize=7;
121+
% lgd.Orientation='Horizontal';
122+
% lgd.Location = 'northwest';
123+
% lgd.Location = 'south';
124+
set(gcf,'Units','Inches');
125+
126+
% title({'Threads State over Time (1M Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
127+
% title({'HTTP Response Times over Time (1M Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
128+
title({'HTTP Latencies over Time (1M Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
129+
130+
% title({'Threads State over Time (1M Threads Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
131+
% title({'MQTT Response Times over Time (1M Threads Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
132+
% title({'MQTT Latencies over Time (1M Threads Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
133+
134+
% title({'Response Times Percentile (1M Threads Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
135+
% title({'Transactions per second (1M Threads Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
136+
% title({'Bytes Throughput over Time (1M Threads Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',15);
137+
% title({'Response Codes per second (1M Threads Threads)','Instance Type (m5.xlarge/m5a.xlarge)'},'FontSize',14);
138+
139+
xlabel('Elapsed time (minutes), Granulation: 500 ms','FontSize',15);
140+
% xlabel('Percentiles (%)','FontSize',15);
141+
ylabel({ylabelslat},'FontSize',15);
142+
pos = get(gcf,'Position');
143+
set(findall(gcf,'-property','FontName'),'FontName','Times New Roman');
144+
set(gcf,'PaperPositionMode','Auto','PaperUnits','Inches','PaperSize',[pos(3), pos(4)]);
145+
146+
% breakyaxis([20000 179000]);
147+
148+
print(gcf,'-dpdf',strcat('/Users/mymac/Documents/SCRIPTSHEET/SKRIPSI/hasilgrafik/',strcat(dataID,stringCSV)),'-r0');
149+
savefig(strcat('/Users/mymac/Documents/SCRIPTSHEET/SKRIPSI/hasilgrafik/',strcat(dataID,stringCSV)));
150+
% print -dpdf -painters hasilgrafik/1a
151+
hold off;
152+
153+

0 commit comments

Comments
 (0)