MATLAB社区

MATLAB,社区等

MATLAB驱动和英国煤炭

前几天我收到了我朋友乔斯的邮件。
他想得真周到!在最近的一次会议后,我们讨论了英国煤炭消费量的显著下降。乔斯从一个政府网站并通过MATLAB Drive与我分享。请注意,这里显示的所有数字都与用于发电的能量有关(而不是,例如,热量或运输)。
因为我们都用MATLAB开车, Jos可以保留他的代码和数据,只发出邀请。一旦我接受了它,我就可以在完全相同的文件夹中工作,从而避免了大量来回发送附件的消息。
我接受了邀请,看到了一个文件夹,里面有一个电子表格、两个导入例程和一个名为runme.m的文件。
这就是韵律。m文件来自乔斯。
当我运行它时,这是结果。
果然,现在煤的使用量接近于零!但由于Jos邀请我与这些共享数据进行合作,我认为我应该进一步充实分析。让我们再深入挖掘一下。
第一步是将他的代码移动到一个Live Script中(很久以后,我会将这个Live Script直接发布到WordPress上,所以你可以有效地看到我创建的Live Script)。
接下来,我加载数据并进一步清理表。
文件名=“UK-energy-fuels.xls”
数据= importdata(文件名);
Headers = importheaders(filename);
清理一些头文件
头(5)=“水电”
头(7)=“Wind_Onshore”
头(8)=“Wind_Offshore”
头(结束)=“总”
数据中缺失值的百分比(NaN应为零)
Data (isnan(Data)) = 0;
T = array2table(data',“VariableNames”,头);
丢弃一些未使用的列。
T (:,[9 12 13 14]) = [];
让我们切换到时间表。时间表太棒了。
t.Time = datetime(1998:2019,1,1)';
T = T (:,[end 1:(end-1)]);
T = table2时间表(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 - 1月- 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 - 1月- 2010 102.1764 4.3082 172.4532 56.4417 3.5658 10.3278 0 0 0 11.1318 364.3963
14 01 - 1月- 2011 103.0063 2.8074 143.8056 62.6552 5.6546 16.2075 0 0 0 11.8370 353.9106
y
快速堆叠的情节是一种有趣的方法来确定我们的方向。堆叠式情节的好处是,他们知道所有的时间表,所以你不必担心太多。只有一行代码,没有标签和限制。
stackkedplot (t(:: [1 2 3 4 5 6 9 10]))
由于y刻度都是不同的,所以堆叠图对趋势非常有用。请注意,风能和太阳能正在稳步上升,而水电变化不大。这是煤炭在消失。
为了了解这些能源的相对贡献,让我们做一个面积图。
桌子让这一切变得如此惬意!
h =面积(时间,[t。煤炭t.Oil t.Gas t.Nuclear t.Hydro t.Wind t.Solar t.Bioenergy]);
有趣的事实:你现在可以用css风格的十六进制颜色名称在MATLAB图中设置颜色。让我们为图表找一些合适的颜色。我用这个工具选择了这些颜色:https://www.w3schools.com/colors/colors_picker.asp。
资料来源= [...
“# 4 d4d4d”“煤”
“663300 #”“油”
“999966 #”“气”
“# aa80ff”“核”
“# 0066 ff”“水电”
“# 66 ccff”“风”
“# ffff66”“太阳”
“# 33 cc33”“生物能源”];
I = 1:长度h
h (i)。FaceColor = sources(i,1);
结束
传奇(来源:2)...
“位置”“northeastoutside”
包含(“日期”
ylabel (“能源(TWh)”
网格
这是乔斯的煤炭图,但与总量进行了标准化,所以我们看到的是能源份额的百分比。
情节(t。时间,100*t.Coal./t.Total,“啊——”“线宽”3)
网格
包含(“日期”
ylabel (“比例”
标题(英国煤炭能源所占百分比
在本世纪初,谁能预测到这一结果?英国是第一个大量使用煤炭作为工业动力的国家,也很可能是第一个放弃煤炭的国家,这一事实具有某种诗意的对称性。
关于陆上风能和海上风能之间的竞争,这里有一个有趣的侧面故事。英国一直是海上风能的先驱。你可能会说他们是狂风巨浪中的沙特阿拉伯。
情节(t.Time (t。Wind_Onshoret.Wind_Offshore],“啊——”“线宽”3)
xlim (datetime ((2012 2020), 1,1))
传奇({“在岸”“离岸”},“位置”“最佳”
包含(“日期”
ylabel (“能源(TWh)”
网格
从本世纪初开始,风力发电现在占英国电力的20%。在陆上和海上这两种口味之间,截至2019年,这是一个死局!考虑到这种趋势,你不得不把钱投在海上风能上。海洋比岛屿大得多。更少的褶皱碍事。
当我在画这些图的时候,我不禁注意到英国的能源消耗总量正在随着时间的推移而减少。这是件好事。毕竟,当你首先需要更少的整体能源时,更容易使用更少的煤炭。
情节(t。时间,t.Total,“线宽”3)
网格
包含(“日期”
ylabel (“能源(TWh)”
标题(“英国的总电力消耗”
因为我是一个投机的人,而且MATLAB是曲线拟合的大师,我很自然地想知道:假设这种下降趋势继续下去?然后什么?
tm = year(t.Time(8:end));
dt = t.Total(8:end);
% p是数据线性拟合的多项式方程
P = polyfit(tm,dt,1);
% ti是与x轴的交点
Ti = -p(2)/p(1);
T0 = 2005;
Tf = [t0 ti];
Df = polyval(p,tf);
持有
情节(datetime(圆(tf), 1,1), df,“啊——”“颜色”“红色”
持有
xlim (datetime ((2000 2100), 1,1))
包含(“日期”
ylabel (“能源(TWh)”
根据目前的趋势,我们可以自信地断言,到2096年,英国将不需要任何形式的电力。
谢谢你提供的数据,乔斯!在MATLAB驱动器上共享数据和代码使得这项调查很容易。现在我已经完成了我的工作,我要看看乔斯还有什么要补充的。我很好奇地想知道,在80年的时间里,他将如何在没有电的情况下生活。
|
  • 打印
  • 发送电子邮件

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。