MATLAB社区

MATLAB,社区和更多

MATLAB Drive和英国煤炭公司

前一天,我收到了我朋友JOS的这封电子邮件。
非常沉思他!最近会面后,我们正在讨论英国煤炭消费的显着下降。JOS发现了来自a的一些数据政府网站并通过Matlab Drive与我分享。请注意,此处显示的所有数字都与用于生成电力的能量(而不是,例如,热或运输)。
因为我们都使用MATLAB开车,JO可以将他的代码和数据留到位并刚刚发出邀请。一旦我接受它,我就可以在同一个精确的文件夹中工作,从而避免了很多与附件的回归消息。
我接受了邀请,并使用电子表格,两个导入例程以及名为Runme.m的文件的文件夹。
这是runme。Jos. m文件
当我运行它时,这是结果。
果然,煤炭的用法现在接近零!但由于JOS邀请我与这个共享数据合作,我以为我会填写分析更多。让我们更深入地挖掘一下。
第一步是将他的代码移动到一个Live Script中(后来,我会将这个Live Script直接发布到WordPress中,所以你可以有效地看到我创建的Live Script)。
接下来,我加载数据并进一步清理表。
filename =.“UK-energy-fuels.xls”;
data = importdata(文件名);
标题= ImportHeaders(文件名);
%清理一些标题
头(5)=“水电”;
头(7)=“wind_onshore”;
头(8)=“Wind_Offshore”;
标题(结束)=“全部的”;
%数据中缺失的值(NaN应为零)
数据(isnan(数据))= 0;
t = Array2table(数据',“VariableNames”,头);
%丢弃一些未使用的列
T (:,[9 12 13 14]) = [];
让我们换一个时间表吧。时间表是可怕的。
t.Time = datetime (1998:2019 1 1) ';
T = T (:,[end 1:(end-1)]);
t = table2timetable(t)
t =22×11时间表
时间 煤炭 石油 气体 水电 Wind_Onshore Wind_Offshore 太阳的 生物能源 总计
1 01 - 1月- 1998 117.0348 6.8340 116.2895. 90.5900 5.0939. 0.8769 0. 0. 0. 2.9637 355.1683
2 01 - 1月- 1999 101.2574. 6.0717 139.6720 87.6721 5.3034 0.8510. 0. 0. 0. 3.7010 361.9159
3. 01-1N-2000 114.7365 5.9284 144.8912 78.3339. 5.0586. 0.9470 0. 0. 0. 4.0673 371.4396
4. 01-1月 - 2001年 125.4019. 4.7766 138.7174 82.9850 4.0324 0.9650 0. 0. 0. 4.7554 374.5751
5. 01-1月 - 2002年 118.4754 4.2168 148.8707 81.0903 4.7628 1.2590 0. 0. 0. 5.3066 375.0735.
6. 01-1月 - 2003年 131.7604 4.1707 145.1360 81.9114 3.2117 1.2880 0. 0. 0. 6.2900 378.6893.
7. 01-1月 - 2004年 125.6896. 4.0933 153.7336 73.6816 4.8205. 1.9390 0. 0. 0. 7.4275 380.8878
8. 01- 1月至2005年 128.5131 4.6509 149.2124 75.1728 4.7505 2.9120 0. 0. 0. 8.9544 385.0995
9. 01-1月 - 2006年 141.4950. 5.4071 137.7543 69.2372 4.5655 4.2360. 0. 0. 0. 9.1093 381.3778
10 01-1月 - 2007年 129.0301 4.4649 162.3896. 57.2489 5.0317. 5.2879. 0. 0. 0. 8.5343 379.2790
11 01-1月 - 2008年 118.0531 5.8852 172.9876 47.6731 5.1109 7.1385 0. 0. 0. 8.6219 378.2265
12 01-1月 - 2009年 97.7979 5.3651 163.4552 62.7617 5.1968 9.3016 0. 0. 0. 9.6011 358.2008
13 01-Jan-2010 102.1764 4.3082 172.4532 56.4417 3.5658 10.3278 0. 0. 0. 11.1318 364.3963
14 2011年1月01日 103.0063 2.8074 143.8056 62.6552. 5.6546 16.2075. 0. 0. 0. 11.8370. 353.9106
ÿ
一个快速堆叠的情节是轴承的有趣方式。关于堆积的情节的好处是他们知道所有关于时间表,所以你不多担心。只是一行代码,没有标签和限制没有搞乱。
StackEdplot(t(:,[1 2 3 4 5 6 9 10]))
由于y尺度各不相同,堆叠图对趋势最有用。请注意,风能和太阳能正在稳步上升,而水电变化不大。煤炭公司正在做着消失的动作。
要了解这些能源的相对贡献,让我们做一个区域情节。
餐桌让这一切变得如此愉快!
h =区域(t.Time [t。煤炭t.Oil t.Gas t.Nuclear t.Hydro t.Wind t.Solar t.Bioenergy]);
有趣的事实:您现在可以使用CSS式十六进制颜色名称在Matlab Ploot中设置颜色。让我们找到图表的一些适当的颜色。我用这个工具挑选了这些颜色:https://www.w3schools.com/colors/colors_picker.asp。
=[来源...
“# 4 d4d4d”“煤”;
“663300 #”“油”;
“999966 #”“气”;
“#aa80ff”“核”;
“# 0066 ff”“水电”;
“# 66 ccff”“风”;
“#ffff66”“太阳”;
“#33CC33”“生物能源”];
为了i = 1:长度(h)
h (i)。FaceColor =来源(我,1);
结尾
传奇(来源:2)...
“地点”“northeastoutside”
包含(“日期”
ylabel (“能源(TWh)”
网格
这是JOS的煤炭情节,但违反了总数,所以我们正在寻找能源份额作为百分比。
情节(t。时间那100.*t.Coal./t.Total,“啊——”“线宽”,3)
网格
包含(“日期”
ylabel (“比例”
标题(“来自英国煤炭的能量百分比”
在本世纪初,谁将预测这一结果?有一定的诗意对称性是英国是第一个制作煤炭煤炭的产业能力的国家,这可能是第一个让它走的东西。
关于陆上和海上风之间的赛马,这里有一个有趣的侧面故事。英国一直是海上风的先驱。你可能会说他们是Blustery Sealanes的沙特阿拉伯。
情节(t.Time (t。Wind_Onshoret.Wind_Offshore],“啊——”“线宽”,3)
XLIM(DateTime([2012 2020],1,1))
传奇({“在岸”“离岸”},“位置”“最好的”
包含(“日期”
ylabel (“能源(TWh)”
网格
从本世纪初开始,风力发电占英国电力的20%。从2019年开始,在陆上和海上这两种口味之间,这是一个死角!鉴于这种趋势,你不得不把钱投在海上风能上。海洋比岛屿要多得多。更少的皱纹挡住视线。
当我在画这些地块的时候,我不禁注意到英国的能源消耗总量正随着时间的推移而减少。这都是好事。毕竟,当你首先需要更少的整体能源时,更容易使用更少的煤。
图(t.time,t.total,“线宽”,3)
网格
包含(“日期”
ylabel (“能源(TWh)”
标题(“英国的整体电力消耗”
因为我是一个投机者,因为Matlab是曲线拟合的主人,我自然想知道:假设这个向下的趋势保持困难?然后怎样呢?
TM =年(T.Time(8:结束));
dt = t.total(8:结束);
%P是线性拟合到数据的多项式方程
p = Polyfit(TM,DT,1);
% ti是与x轴交点
ti = - p / p (1) (2);
t0 = 2005;
Tf = [t0 ti];
df = polyval (p, tf);
抓住
绘图(DateTime(圆形(TF),1,1),DF,“啊——”“颜色”“红色”
抓住离开
xlim (datetime ((2000 2100), 1,1))
包含(“日期”
ylabel (“能源(TWh)”
根据目前的趋势,我们可以自信地断言,到2096年,英国将不需要任何形式的力量。
谢谢你提供的数据,Jos!在MATLAB Drive上共享数据和代码使这一研究变得容易。现在我已经完成了我的使命,我要看看乔斯还能补充些什么。我很好奇,在80年后,他是如何在没有电的情况下生存下去的。
|
  • 打印
  • 发送电子邮件

评论

请点击留下评论在这里登录到你的MathWorks帐户或创建一个新的。