【问题标题】:Not cropping BarChart when using Frame instead of Axes使用框架而不是轴时不裁剪条形图
【发布时间】:2011-07-02 15:30:06
【问题描述】:

我刚刚发现BarChart 在使用Frame 而不是Axes 时可能会被裁剪。

例子:

data = {.2, .4, .6, 0., 0., 0.}
BarChart[data]
BarChart[data, Frame -> True, Axes -> False]

这是功能还是错误?如果是特征,有没有简单的方法来防止裁剪?

编辑

屏幕截图,每个请求:

【问题讨论】:

  • 你能上传一张它看起来如何的图片吗? This 是我得到的,在我看来并没有裁剪(当然,除非我误解了你所说的“裁剪”的意思)
  • @yoda,见编辑。你用什么版本?我在 WinXP 上有 8.0.1。
  • @yoda,一般来说,BarChart 似乎不支持框架,只支持轴。例如。帧的刻度是错误的。很遗憾,因为偶尔有一个可见的框架很好。
  • 我在 Mac OSX 10.6 上使用 v7。我认为在 v8 中的直方图/条形图类函数中添加了一些额外的功能(例如,无需手动收割和播种等即可获得直方计数),这可能是当时引入的错误。
  • @yoda,有人告诉我这不会在 Linux 8 上发生。在 SO 上问这个问题是错误的。

标签: wolfram-mathematica plot mathematica-8


【解决方案1】:

嗯,并不总是这样:

【讨论】:

  • 显然它依赖于机器(不依赖于版本)。请注意,在下面大卫的回答中,零高度条根本不可见(此处相同),而在您的屏幕截图中它们是可见的。必须是一些与舍入相关的数字伪影。
【解决方案2】:

使用PlotRange怎么样?...

data = {.2, .4, .6, 0., 0., 0.}
BarChart[data]
BarChart[data, Frame -> True, Axes -> False, 
PlotRange -> {{.5, 6.5}, {0, .7}}, 
FrameTicks -> {None, Automatic, None, None}]


编辑

我开始认为这确实是一个错误。看看如果我们简单地改变数据中元素的顺序会发生什么。它承认(但不显示基线)它之前忽略的零高度条。 请注意,这次我不必使用 PlotRange 调整显示。

【讨论】:

  • 当然可以,但这相当于我必须从列表的长度中计算出适当的PlotRange,这非常麻烦。我感觉这要么是一个错误,要么是 BarChart 根本不适用于框架。
  • 也许这是一种审美选择。文档中有很多示例在仅出现三个时使用粗粗的条,但在出现 5 个或更多时使用粗条。例如BarChart[{1, Style[2, Yellow], 3}, ChartStyle -> {Red, Green, Blue}] 自豪地直接显示在BarChart[{{1, 2, 3}, {4, 5, 6}}, ChartStyle -> {{Yellow, Magenta}, {Red, Green, Blue}}] 的示例下方。而且有这么多选择,看来 WR 并没有留下太多机会。
猜你喜欢
  • 2013-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-30
  • 2023-01-12
  • 2018-07-21
  • 2011-02-07
相关资源
最近更新 更多