Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

KendoUI line Graph, How to keep labels from being drawn outside the graph?

I'm using KendoUI line graph. I have labels on a line graph and the labels are getting cut off on top. Is there a way to prevent this?

KendoUI Line Graph

Here is a jsFiddle project to play with: http://jsfiddle.net/rodneyhickman/2eWYg/1/

Here is my Markup:

<div style="padding:20px;" >
   <div id="divChart"></div>
</div>

Here is my script:

jQuery('#divChart').kendoChart({
seriesDefaults: {
    type: "line",
    missingValues: "interpolate"
},
legend: {
    position: "bottom"
},
tooltip: {
    visible: true,
    format: "{0}%"
},
valueAxis: {
    min: 70,
    max: 90,
    plotBands: [{
        from: 70,
        to: 75,
        color: "#f5f5f5"},
    {
        from: 80,
        to: 85,
        color: "#f5f5f5"},
    {
        from: 90,
        to: 95,
        color: "#f5f5f5"}]
},
series: [{
    type: "line",
    name: "Product 1",
    color: "#004990",
    width: 1,
    markers: {
        background: "#004990"
    },
    tooltip: {
        visible: true,
        template: "<b>Product 1</b><br/>Current Score: #= value #<br/>#= category # "
    },
    labels: {
        visible: true
    },
    data: [88.71, 88.87, 88.91, 89.39, 89.44, 89.47, 89.39, 89.38, 89.25, 88.81, 88.9, 88.84, 88.79]},
{
    type: "line",
    name: "Market Segment",
    color: "#da7633",
    width: 1,
    markers: {
        background: "#da7633"
    },
    tooltip: {
        visible: true,
        template: "<b>Market Segment</b><br/>Current Score: #= value #<br/>#= category # "
    },
    data: [75.9, 75.58, 75.54, 75.19, 74.9, 74.42, 74.51, 74.72, 74.55, 74.44, 74.15, 73.86, 73.79]}],
categoryAxis: {
    labels: {
        rotation: -45,
        step: 1,
        skip: 0
    },
    categories: ["Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan - 2012", "Feb", "Mar", "Apr"]
}
});​
like image 470
Rodney Hickman Avatar asked May 29 '12 22:05

Rodney Hickman


2 Answers

By adding a margin to the plotArea it makes room for the labels.

plotArea: { margin: { top: 20, left: 5, right: 5, bottom: 5 } },

Here is the solution:

http://jsfiddle.net/rodneyhickman/2eWYg/2/

like image 122
Rodney Hickman Avatar answered Nov 18 '22 00:11

Rodney Hickman


You could configure the series to add the labels underneath the points - as per the docs;

notes: {
  position: "bottom"
},
like image 1
Stuart Hallows Avatar answered Nov 17 '22 23:11

Stuart Hallows