独立于 ChartJS 中的图例调整图表大小以供 Canvas 下载
Resize Chart Independently From Legend in ChartJS for Canvas Download
我的应用程序创建和下载的一些图表可能具有非常大的图例。在这种情况下,我们的想法是创建(理想情况下通过 ChartJs - 就像关联图表的情况一样)并下载专用的 canvas/image 显示图表的完整图例。
到目前为止,我已经能够通过将比例设置为显示来“隐藏”图表:false 例如
options: {
scales: {
x: {
display: false
},
y: {
display: false
}
这成功地阻止了图表的显示,但是 canvas 似乎仍然为图表分配了一半的空间,例如
有什么方法可以让图表的 space 变小(甚至根本不显示它!)允许更多 space 用于图例?
游乐场在这里:
https://jsfiddle.net/ShallDev2018/7bdnjsw9/16/
注意:HtmlLegend 不是此处的选项,因为此 canvas 的唯一目的是用于下载。
经过一番折腾,我找到了解决问题的方法。
碰巧的是,ChartJs 为图例设置了默认的最大宽度(尽管它没有在文档中指定)。通过将图例最大宽度设置为较高的值,图例可以假设整个 canvas 例如
legend: {
position: 'left',
align: 'start',
fullSize: false,
labels: {
font: {
size: 12
},
padding: 10
},
maxWidth: 9999
}
我的应用程序创建和下载的一些图表可能具有非常大的图例。在这种情况下,我们的想法是创建(理想情况下通过 ChartJs - 就像关联图表的情况一样)并下载专用的 canvas/image 显示图表的完整图例。
到目前为止,我已经能够通过将比例设置为显示来“隐藏”图表:false 例如
options: {
scales: {
x: {
display: false
},
y: {
display: false
}
这成功地阻止了图表的显示,但是 canvas 似乎仍然为图表分配了一半的空间,例如
有什么方法可以让图表的 space 变小(甚至根本不显示它!)允许更多 space 用于图例?
游乐场在这里: https://jsfiddle.net/ShallDev2018/7bdnjsw9/16/
注意:HtmlLegend 不是此处的选项,因为此 canvas 的唯一目的是用于下载。
经过一番折腾,我找到了解决问题的方法。
碰巧的是,ChartJs 为图例设置了默认的最大宽度(尽管它没有在文档中指定)。通过将图例最大宽度设置为较高的值,图例可以假设整个 canvas 例如
legend: {
position: 'left',
align: 'start',
fullSize: false,
labels: {
font: {
size: 12
},
padding: 10
},
maxWidth: 9999
}