Обработка тиков в чартах Mathematica - PullRequest
2 голосов
/ 25 августа 2011

Пожалуйста, примите во внимание:

dalist = {{379, 219, 228, 401}, {387, 239, 230, 393},      
          {403, 238, 217, 429}, {377, 233, 225, 432}}

BarChart[dalist, 
         Frame -> True, 
         FrameTicks -> {{None, None}, {None, None}}]

enter image description here

Я не могу понять, как справиться с самими тиками и диапазоном (числами). Я хотел бы видеть диапазон, но не галочки, как показано ниже:

enter image description here

РЕДАКТИРОВАТЬ:

Решив какую-то проблему, кажется, я создал новые. Подводя итог, хотелось бы увидеть: TicksLabel, но не Ticks (решено) FrameLabel, но не Frame.

Ниже поясняется проблема. FrameStyle управляет меткой кадра. Таким образом, применяя непрозрачность [0] к FrameStyle, чтобы скрыть кадр, скрывается метка кадра.

BarChart[Range[10],
 ChartStyle -> Black,
 PlotRangePadding -> 0,
 Frame -> {{True, False}, {True, False}},
 FrameLabel -> {{"Why?", None}, {"Because !", None}},
 FrameTicksStyle -> Opacity[1],
 FrameStyle -> Opacity[0],

 PlotLabel -> Style["Bonjour", Bold, 16, Opacity[1]],
 LabelStyle -> Directive[Black, Bold, 12, Opacity[1]],
 ImageSize -> 400]

enter image description here

Ответы [ 2 ]

4 голосов
/ 25 августа 2011

Тики и FrameTicks имеют необязательный более сложный синтаксис, где каждый тик можно указать как {x,label,{length_inside,length_outside}}

Таким образом, чтобы иметь метки тиков без тиков, укажите вторую пару чисел в виде двух нулей.Чтобы повторить тики в вашем примере, вы должны использовать

FrameTicks->{{Table[{j,j,{0,0}},{j,0,300000,50000}],None},
 {Table[{k,k,{0,0}},{k,2010,2015}],None}}

. Для BarCharts столбцы находятся в 1, 2, 3 ... x-позициях, поэтому это должно быть:

FrameTicks->{{Table[{j,j,{0,0}},{j,0,300000,50000}],None},
 {Table[{k,k+2009,{0,0}},{k,1,6}],None}}

В соответствии с запросом в комментариях, если вам нужны числа, но не отмечены галочки и нет фрейма, добавьте:

FrameTicksStyle -> Opacity[1], FrameStyle -> Opacity[0]

РЕДАКТИРОВАТЬ И используйте Style для любых меток фреймов.

Конечный результат:

data = RandomReal[{0, 300000}, {10}]
BarChart[data, 
 FrameTicks -> {{Table[{j, j, {0, 0}}, {j, 0, 300000, 50000}], 
 None}, {Table[{k, k + 2009, {0, 0}}, {k, 1, 10}], None}}, 
 Frame -> True, FrameTicksStyle -> Opacity[1], FrameStyle -> Opacity[0],
 FrameLabel -> {{Style["Why?", Opacity[1]],  None}, 
   {Style["Axes", Opacity[1]], None}}]

enter image description here

Мой ответ на этот вопрос может помочь осветить.

2 голосов
/ 25 августа 2011

Возможно, вы ищете ChartLabels:

BarChart[dalist, ChartLabels -> Placed[Flatten@dalist, Below], 
                 FrameTicks -> {{Automatic, None}, {None, None}},
                 Frame -> True, 
                 Ticks -> None]

enter image description here

...