ChartJS: Clicking on legend option makes line chart ugly
up vote
0
down vote
favorite
I have used the example to add a vertical line on my line chart, I took a reference from here https://github.com/chartjs/Chart.js/issues/3803#issuecomment-365450035
Everything works fine until I try to toggle legend option in my line chart and line chart starts to look strange.
Before I click the legend option chart looks like below,
and once I toggle the red color legend option then it looks like below,
Here is my code the only thing I have changed is I have used Dash line instead of the normal line on canvas,
plugins: [
beforeEvent: function(chart, e)
if ((e.type === 'mousemove')
&& (e.x >= e.chart.chartArea.left)
&& (e.x <= e.chart.chartArea.right)
)
chart.options.customLinePlugin.x = e.x;
,
afterDraw: function(chart, easing)
let ctx = chart.chart.ctx;
let chartArea = chart.chartArea;
let mainCanvas = chart.canvas;
let pluginObj = chart.options.customLinePlugin;
let x = pluginObj.x;
if (!isNaN(x))
ctx.save();
ctx.setLineDash([4, 3]);
ctx.strokeStyle = chart.options.customLinePlugin.color;
ctx.moveTo(chart.options.customLinePlugin.x, chartArea.bottom);
ctx.lineTo(chart.options.customLinePlugin.x, chartArea.top);
ctx.stroke();
ctx.restore();
,
]
The strange thing is that when I hover the mouse over Line Chart it becomes normal but if I move away from the mouse from Chart area then it again starts to look strange.
I'm stuck, Could anyone please suggest?
html html5 html5-canvas chart.js chartjs-2.6.0
add a comment |
up vote
0
down vote
favorite
I have used the example to add a vertical line on my line chart, I took a reference from here https://github.com/chartjs/Chart.js/issues/3803#issuecomment-365450035
Everything works fine until I try to toggle legend option in my line chart and line chart starts to look strange.
Before I click the legend option chart looks like below,
and once I toggle the red color legend option then it looks like below,
Here is my code the only thing I have changed is I have used Dash line instead of the normal line on canvas,
plugins: [
beforeEvent: function(chart, e)
if ((e.type === 'mousemove')
&& (e.x >= e.chart.chartArea.left)
&& (e.x <= e.chart.chartArea.right)
)
chart.options.customLinePlugin.x = e.x;
,
afterDraw: function(chart, easing)
let ctx = chart.chart.ctx;
let chartArea = chart.chartArea;
let mainCanvas = chart.canvas;
let pluginObj = chart.options.customLinePlugin;
let x = pluginObj.x;
if (!isNaN(x))
ctx.save();
ctx.setLineDash([4, 3]);
ctx.strokeStyle = chart.options.customLinePlugin.color;
ctx.moveTo(chart.options.customLinePlugin.x, chartArea.bottom);
ctx.lineTo(chart.options.customLinePlugin.x, chartArea.top);
ctx.stroke();
ctx.restore();
,
]
The strange thing is that when I hover the mouse over Line Chart it becomes normal but if I move away from the mouse from Chart area then it again starts to look strange.
I'm stuck, Could anyone please suggest?
html html5 html5-canvas chart.js chartjs-2.6.0
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have used the example to add a vertical line on my line chart, I took a reference from here https://github.com/chartjs/Chart.js/issues/3803#issuecomment-365450035
Everything works fine until I try to toggle legend option in my line chart and line chart starts to look strange.
Before I click the legend option chart looks like below,
and once I toggle the red color legend option then it looks like below,
Here is my code the only thing I have changed is I have used Dash line instead of the normal line on canvas,
plugins: [
beforeEvent: function(chart, e)
if ((e.type === 'mousemove')
&& (e.x >= e.chart.chartArea.left)
&& (e.x <= e.chart.chartArea.right)
)
chart.options.customLinePlugin.x = e.x;
,
afterDraw: function(chart, easing)
let ctx = chart.chart.ctx;
let chartArea = chart.chartArea;
let mainCanvas = chart.canvas;
let pluginObj = chart.options.customLinePlugin;
let x = pluginObj.x;
if (!isNaN(x))
ctx.save();
ctx.setLineDash([4, 3]);
ctx.strokeStyle = chart.options.customLinePlugin.color;
ctx.moveTo(chart.options.customLinePlugin.x, chartArea.bottom);
ctx.lineTo(chart.options.customLinePlugin.x, chartArea.top);
ctx.stroke();
ctx.restore();
,
]
The strange thing is that when I hover the mouse over Line Chart it becomes normal but if I move away from the mouse from Chart area then it again starts to look strange.
I'm stuck, Could anyone please suggest?
html html5 html5-canvas chart.js chartjs-2.6.0
I have used the example to add a vertical line on my line chart, I took a reference from here https://github.com/chartjs/Chart.js/issues/3803#issuecomment-365450035
Everything works fine until I try to toggle legend option in my line chart and line chart starts to look strange.
Before I click the legend option chart looks like below,
and once I toggle the red color legend option then it looks like below,
Here is my code the only thing I have changed is I have used Dash line instead of the normal line on canvas,
plugins: [
beforeEvent: function(chart, e)
if ((e.type === 'mousemove')
&& (e.x >= e.chart.chartArea.left)
&& (e.x <= e.chart.chartArea.right)
)
chart.options.customLinePlugin.x = e.x;
,
afterDraw: function(chart, easing)
let ctx = chart.chart.ctx;
let chartArea = chart.chartArea;
let mainCanvas = chart.canvas;
let pluginObj = chart.options.customLinePlugin;
let x = pluginObj.x;
if (!isNaN(x))
ctx.save();
ctx.setLineDash([4, 3]);
ctx.strokeStyle = chart.options.customLinePlugin.color;
ctx.moveTo(chart.options.customLinePlugin.x, chartArea.bottom);
ctx.lineTo(chart.options.customLinePlugin.x, chartArea.top);
ctx.stroke();
ctx.restore();
,
]
The strange thing is that when I hover the mouse over Line Chart it becomes normal but if I move away from the mouse from Chart area then it again starts to look strange.
I'm stuck, Could anyone please suggest?
html html5 html5-canvas chart.js chartjs-2.6.0
html html5 html5-canvas chart.js chartjs-2.6.0
asked Nov 9 at 14:23
n33rma
2,140924
2,140924
add a comment |
add a comment |
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53227542%2fchartjs-clicking-on-legend-option-makes-line-chart-ugly%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53227542%2fchartjs-clicking-on-legend-option-makes-line-chart-ugly%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown