【问题标题】:How to plot histogram with numerical and string data with Matlab?如何使用 Matlab 绘制带有数字和字符串数据的直方图?
【发布时间】:2018-01-10 16:50:35
【问题描述】:

我有一个 csv 文件。它包含两列,称为设备(字符串值)和平均时间(浮点数,数值)。我需要绘制直方图,x 轴:设备,y 轴:AverageTime。我的代码是

T=readtable('H:/Temporary/test.csv');
T.Properties.VariableNames = {'Devices' 'Time'};
Devices1=T.Devices;
Time1=T.Time;
hist(Devices1, Time1);

但我遇到了错误

使用 hist 时出错(第 48 行) 输入参数必须是数字。 测试错误(第 5 行) hist(Devices1, Time1)

请帮我规划一下?

My csv file looks like: (just an example)
Devices      AverageTime
A            10.23
B            22.38
C            78.20
D            100.002
E            57.1147

【问题讨论】:

  • 尝试str2num 将您的字符串值转换为数字值。
  • 您的意思是说设备在 CSV 文件中重复,并且您要为同一设备添加值?
  • 克里斯,我修改了我的问题并添加了我的 csv 文件。我需要将其绘制为直方图。 X 轴是每个设备,Y 轴是它们的值。
  • 您确定要histogram 而不是bar graph

标签: matlab histogram


【解决方案1】:

您可以通过使用 bar 而不是 hist 来实现,您只需将 XtickLabel 设置为像这样显示设备名称

bar(Time1)
set(gca,'xticklabel',Devices1)

【讨论】:

  • 谢谢,成功了!! .请您告诉我如何使 X 轴(设备名称)的标签更清晰可见。就我而言,它们是重叠的。
  • 就我而言,我有 188 台设备。我需要用它们的设备名称更清楚地绘制它们。
  • 好吧,您可以添加更多属性来设置命令,例如 'FontSize', 12 或 'FontName','TimesNewRoman' 。您还可以使用 xtickangle 旋转名称
猜你喜欢
  • 1970-01-01
  • 2020-09-12
  • 2011-04-10
  • 1970-01-01
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
相关资源
最近更新 更多