Как остановить диаграмму от скрытия меток для значения данных 0 в Mathematica? - PullRequest
7 голосов
/ 12 января 2012

Я использую это для создания гистограммы:

BarChart[
 Reverse@data,
 BarOrigin -> Left,
 ChartLabels -> 
  Placed[{Reverse@labels, Reverse@data}, {Before, After}],
 ChartElementFunction -> "FadingRectangle"
 ]

С data = {7, 10, 0, 6, 0, 3, 5} это дает

Mathematica graphics

Проблема в том, что некоторые данныезначения равны 0 и BarChart даже не добавит метки для них.Вместо этого он оставляет открытое пространство.Как я могу заставить его добавлять метки, даже если значения равны 0?

Это с Mathematica 8.

Ответы [ 3 ]

6 голосов
/ 13 января 2012

А как же

data = {7, 10, 0, 6, 0, 3, 5}

labels = ("label " ~~ ToString[#]) & /@ data

BarChart[Reverse@data, BarOrigin -> Left,
ChartLabels -> Placed[{Reverse@labels, Reverse@data}, {Axis, After}],
ChartElementFunction -> "FadingRectangle"]

Кажется, что "До" не работает, а "Ось" работает?

chart

3 голосов
/ 12 января 2012

Самый простой подход - использовать хак, подобный data /. {(0|0.0) -> 0.00001}.

Я думаю, что это должно работать без необходимости взлома, поэтому вы также должны подать отчет на support@wolfram.com.

2 голосов
/ 13 января 2012

Ваш код работает, как указано в Mathematica 7 в Windows 7.

data = {7, 10, 0, 6, 0, 3, 5};

labels = Row[{"label",#}]& /@ data;

BarChart[
  Reverse@data,
  BarOrigin -> Left,
  ChartLabels ->
   Placed[{Reverse@labels, Reverse@data}, {Before, After}],
  ChartElementFunction -> "FadingRectangle"
]

Mathematica graphics

...