0
|
5680 Views
|
3 Replies
|
0 Total Likes
View groups...
Share

# Use list in Chart-function

Posted 9 years ago
 How can I simplify this: BarChart[{pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng, pPoäng}, ChartLabels -> {Range[2, 36]}, AxesLabel -> {X}, ImageSize -> Large]  To something like this: BarChart[{pPoäng}, ChartLabels -> {Range[2, 36]}, AxesLabel -> {X}, ImageSize -> Large]  I've tried multiple approaches and I either get an empty chart or the error message: "pPoäng is not a valid dataset or list of datasets" TIA!
3 Replies
Sort By:
Posted 9 years ago
 You can try mapping pPoäng: BarChart[pPoäng /@ Range[2, 26], ChartLabels -> Range[2, 36], AxesLabel -> {X}, ImageSize -> Large] I wouldn't suggest this, though. If you look at the Information of pPöang, you'll see that it is a function with values it will look up for each number 2..36. ?pPoäng It would make more sense to use a list which will make it easier to use with BarChart as well but it will require some modifications to your code: poäng[p_][{x_, x_, x_, y_, y_} /; x != y] := 3 x + 2 y == p; pPoäng = N[Count[omega, _?(poäng[#])]/ntot] & /@ Range[2, 36]; BarChart[pPoäng, ChartLabels -> Range[2, 36], AxesLabel -> {X}, ImageSize -> Large] Alternatively, if you have Mathematica 10, you can use pPoäng as an Association. This just requires you to put this line before the Do: pPoäng = <||>; Although I would suggest rewriting poäng the same way as above and the Do line as (pPoäng[#] = N[Count[omega, _?(poäng[#])]/ntot]) & /@ Range[2, 36]; This is to keep p as a local variable.And then you can draw the chart with BarChart[pPoäng, ChartLabels -> Range[2, 36], AxesLabel -> {X}, ImageSize -> Large] 
Posted 9 years ago
 What is pPoäng?
Posted 9 years ago
 Sorry, it should be a list with probabilities (floats). omega = Sort /@ Tuples[{Range[1, 4], Range[1, 6], Range[1, 8], Range[1, 12], Range[1, 20]}]; ntot = Length[omega]; poäng[{x_, x_, x_, y_, y_} /; x != y] := 3 x + 2 y == p (* There are multiple lines like this *)) Do[pPoäng[p] = N[Count[omega, _?(poäng)]/ntot], {p, 2, 36}];