# Why doesn't FrameTicks work with Histogram?

An example:

Histogram[RandomVariate[NormalDistribution[], 1000],
Frame -> True,
FrameTicks -> {{{0, 0}}, {}}]


I expected this to produce a histogram without ticks. However:

Meanwhile, if I use the same tick specification with Plot:

Plot[PDF[NormalDistribution[], x], {x, -\[Pi], \[Pi]},
Frame -> True,
FrameTicks -> {{{0, 0}}, {}}]


-
Is FrameTicks->None what you want? –  ssch Jul 30 at 12:46
@ssch Thanks, but this was just an illustration that it's not working as I expected it to. I do actually want to provide my own ticks! –  Will Vousden Jul 30 at 12:47
I think you're tick specification is incorrect. There is some ambiguity there from older forms of FrameTicks when Histogram wasn't yet present. So, it only got the newer form. According to the docs, FrameTicks accepts specifications of the form {{left, right}, {bottom, top}}, so you're looking for FrameTicks -> {{{},{}}, {{},{}}}. –  rcollyer Jul 30 at 12:56
@rcollyer that looks to be the case. Spelunking Histogram shows this row, where frameticks is the option value: If[! MatchQ[frameticks, {{_, _}, {_, _}}], frameticks = ({{#1, #1}, {#1, #1}} &)[frameticks]]; And since original specification doesn't match it gets turned into some ungodly {{{{}, {}}, {{}, {}}}, {{{}, {}}, {{}, {}}}} which gets thrown out later and replaced with Automatic ticks because it is not VisualizationUtilitiesFrameTicksQ –  ssch Jul 30 at 13:01
FYI: your code as shown produces no tick marks in Version 7 on Windows, but produces an error (pink box). –  Mr.Wizard Jul 30 at 14:11

The FrameTicks specification changed in v6. Previously, the form

{right, bottom, left, top}


was used, but in v6, it was changed to

{{left, right}, {bottom, top}}


To maintain compatibility between the versions, the older form is still allowed for the older plots. But, quite a few plots were added since that point (e.g. Histogram was added in v7), and they only use the newer form. To achieve what your looking for without setting

FrameTicks -> None


you need to use this

FrameTicks -> {{{(*left*)}, {(*right*)}}, {{(*bottom*)}, {(*top*)}}}

-