将图中的y值更改为名称

7次浏览(过去30天)
HG-NU
HG-NU 2020年5月6日
评论道: 凯利卡尼 2020年5月7日
我能够绘制一年中每个小时的温度,并使用以下命令得到这个结果:
情节((1:8760,5)”)
X轴是一年中的小时数
Y轴为每天的温度值
问题:
如何将X轴上的交叉值更改为月份名称而不是小时?
即。
1月而不是1000
2月而不是2000年
等等

接受的答案

凯利卡尼
凯利卡尼 2020年5月7日
你需要计算每个月的工作时间:
TTK = datetime(2019,1:13,1);
集(gca),“xtick”小时(ttk-datetime(2019年,1,1)),“xticklabel”cellstr (datestr (ttk“嗯”)))
检查您的数据的具体年份;在闰年和非闰年,对齐方式会有所不同。
或者,如果您实际为x值指定了datetime值,Matlab将创建一个日期轴,自动适当地标记事物:
T = datetime(2019,1,1) + hours(1:8760);
情节(t (1:8760 5) ');
4评论
凯利卡尼
凯利卡尼 2020年5月7日
我建议您花一些时间来真正理解您正在使用的命令。对于如何修改绘制的轴,我给出了一些不同的建议,但您需要了解Matlab是如何使用数据来创建图形的。
在最初的示例中,您绘制了数据,但没有提供任何x数据。当您这样做时,Matlab自动将x-data赋值为整数值。在你的例子中,这意味着x轴可以被解释为相对于一些参考开始时间的小时,你可以相应地分配你的标记:
A = -cos(linspace(0,2.*pi,8760)) + randn(1,8760);%虚假数据
%选项1
次要情节(2,1,1);
图(一);%与地块相同(1:8760,A)
TTK = datetime(2019,1:12,15);%期望的刻度位置,如日期时间
TKLBL = cellstr(datestr(ttk,“嗯”));%标签,您希望与这些标记匹配
XTK = hours(ttk - datetime(2019,1,1));%蜱虫位置
集(gca),“xtick”xtk,“xticklabel”, tklbl);
第二种选择是将一些日期时间值作为x-data传递给绘图,这样Matlab就会向绘图添加一个日期轴,并负责设置标记标签的格式。
次要情节(2,1,2);
T = datetime(2019,1,1) + hours(1:8760);
情节(t);
集(gca),“xtick”, ttk);
这两个选项都将为您提供所需的刻度:

登录评论。

更多答案(1)

BN
BN 2020年5月7日
编辑:BN 2020年5月7日
你好
在你的问题中,你说的是y,但似乎你指的是x;无论如何,
试试这个:
名称= {“1月”“2”“3”“4”“可能”“6月”“7”“八月”“9”...
“十月”11月的12月的};
集(gca),“xtick”[1:12],“xticklabel”的名字)
但是:
你有10个月的时间?
你们10月结束?这就是:
名称= {“1月”“2”“3”“4”“可能”“6月”“7”“八月”“9”...
“十月”};
集(gca),“xtick”[1:12],“xticklabel”的名字)
我希望这对你有所帮助。
2的评论
BN
BN 2020年5月7日
编辑:BN 2020年5月7日
试试这个:
集(gca),“xtick”1:10,...
“xticklabel”, {“1月”“2”“3”“4”“可能”“6月”“7”...
“八月”“9”“十月”})
如果你有12个月,将10改为12,并输入其他3个月的名称
我认为之前的代码没有工作,因为“[]”

登录评论。

标签

s manbetx 845


释放

R2020a

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!