Mathematica画Histogram画不出来,

Mathematica画Histogram画不出来,
运行出来是这样:

(如果不加参数,即Histogram[data]则可以运行)

代码如下:
data = {40.6, 41.4, 40.6, 43.1, 37.3, 40.4, 43.4, 43.2, 38.3, 40.3,
39.5, 44.4, 43.4, 42.3, 44.2, 40.5, 41.2, 43.6, 44.7, 45.1, 39.2,
43.3, 41.7, 42.7, 40.4, 42.1, 44.3, 42.1, 42, 47, 45.6, 42.6, 44.3,
44.7, 41.7, 45.7, 43.7, 45.8, 39.8, 45.6, 42, 47, 45.6, 42.6,
41.4, 41.6, 39.1, 37, 43.3, 43.8, 38.9, 40.7, 39.8, 39.8, 43.4,
41.7, 42.7, 40.1, 43.6, 44.7};
Needs["Histograms`"]
Max[data] - Min[data]
CatLength = Ceiling[10/6];
categories = Table[Min[data] - 0.05 + i CatLength, {i, 0, 6}]

Histogram[data, {Min[categories], Max[categories] , categories},
PlotRange -> {0, Automatic}, Frame -> {True, True, False, False},
FrameTicks -> {{Automatic, None}, {categories, None}},
FrameLabel -> {"x",
"y"}]
phz7758 1年前 已收到1个回答 举报

lovelycelia0613 幼苗

共回答了21个问题采纳率:100% 举报

你在用哪个版本?版本7时,Histogram函数就已经内置了,至少我现在用版本8是可以直接用的.
你下面给的代码怎么有一行没有命名的Max[data] - Min[data],写在那里看啥的?
你到底是想要使用怎样的箱体?你现在这种定义宽度的方法是错的,你可以看看帮助里的“更多信息”,里面给出了宽度的几种可用语法.最简单的修改方法是把你的
{Min[categories],Max[categories] ,categories}
改成
{categories}
当然我并不清楚你到底是想做怎样的分隔,所以……你说清楚些吧——还是说你想要这样的?:
{Sort@Flatten@{Max[data],Min[data],categories}}

1年前 追问

9

phz7758 举报

我的版本是9

Max[data] - Min[data]=10,可以无视掉,是用来算下一行的CatLength的

我想要类似上图这样的

不要下图这样的

拜托啦~THX

举报 lovelycelia0613

……我在上面给你的两类改法都能改出这个效果啊。

phz7758 举报

还是没画出来。。。它还是直接out出和上面差不多的东西

要不能不能麻烦您把图直接上传给我?

x轴和y轴分别是"Observed Weights of 60 packets of M&Ms", "Number of Packets"

举报 lovelycelia0613

我从刚才起就很在意了,你是怎么把Histogram弄成红色的? —————— 果然……你刚才说你用的是版本9吧?但是你依然执行了上面你给出的那个代码吧?把这行去掉: Needs["Histograms`"] 这个是在版本7以前用来载入相关的函数包的,版本9已经没这个玩艺儿了,载入造成了冲突。解决方法嘛……我暂时还没找到程序内的解决方法。总之你先把软件重开一次,去掉上面那行 Needs["Histograms`"] 再执行代码就行了。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 0.140 s. - webmaster@yulucn.com