在数据集中显示多个标签并将 % 添加到数据中
showing more than one label in the dataset and add % to the data
我有我的数据集,我需要显示 3 个标签,但是当我添加更多标签时它只显示一个,我也希望能够有不同颜色的标签,我的另一个问题是我想添加“ %”添加到数据中,但它说“需要表达”。
这是我的数据集:
datasets: [{
labels: ["Book 1", "Book 2" , "Book 3" ],
data: [8%, 24%, 92%, 30% , 5%],
backgroundColor: ["yellow", "red", "blue", "blue" , "red" ],
barThickness:30
}]
labels
属性是 data
的一部分,但不是 dataset
的元素,您应该这样写:data={labels, dataset}
。您的数据长度和颜色数量也应与标签数量相匹配。我又添加了 2 本书(book4 和 book5)标签,这样我们就有了相同数量的标签、数据和颜色。
要添加'%'
符号,您可以使用options
对象根据需要修改标签。使用此对象,您可以提供回调函数来自定义标签。命名空间是 options.plugins.tooltip.callbacks
。更多内容:Tooltip | Chart.js
你说的只显示1的label
不完全是label
,而是图表的legend
。由于每本书的名称都在每个栏的正下方,因此我删除了带有 options
对象的图例。命名空间是 options.plugins.legend
以下是 Bar
对象及其外观图像
<Bar
width={100}
height={50}
data = {{
labels: ["Book1","Book2","Book3","Book4","Book5"],
datasets: [{
data: [8, 24, 92, 30, 5],
backgroundColor: ["yellow", "red", "blue", "orange", "pink"],
}
]
}}
options={{
plugins: {
legend: {
display: false
},
tooltip: {
enabled: true,
callbacks: {
label: (context) => {
let label = context.dataset.label || '';
if (label) {
label += ': ';
}
if (context.parsed.y !== null) {
label += context.parsed.y + '%';
}
return label;
}
}
}
},
}}
/>
如果您想要显示每个条形并在每个条形图的顶部有一个带有书名的图例,那么您需要做的是将每个条形图视为不同的数据集。对于每个数据集,在 label
属性中添加 book name
,对于 labels
数组,只保留 1 个值,这样它就保持为一个部分,您可以随意写入或留空作为 ""
。在这种情况下,legend
是必需的,因此 options
对象中的唯一区别是 legend
属性被省略并设置为其默认值:true
<Bar
width={100}
height={50}
data = {{
labels: [""],
datasets: [{
label:'Book1',
data: [8],
backgroundColor: ["yellow"],
},
{
label:'Book2',
data: [24],
backgroundColor: ["red"],
},
{
label:'Book3',
data: [92],
backgroundColor: ["blue"],
},
{
label:'Book4',
data: [30],
backgroundColor: ["orange"],
},
{
label:'Book5',
data: [5],
backgroundColor: ["pink"],
}
]
}}
options={{
plugins: {
tooltip: {
enabled: true,
callbacks: {
label: (context) => {
let label = context.dataset.label || '';
if (label) {
label += ': ';
}
if (context.parsed.y !== null) {
label += context.parsed.y + '%';
}
return label;
}
}
}
},
}}
/>
我有我的数据集,我需要显示 3 个标签,但是当我添加更多标签时它只显示一个,我也希望能够有不同颜色的标签,我的另一个问题是我想添加“ %”添加到数据中,但它说“需要表达”。
这是我的数据集:
datasets: [{
labels: ["Book 1", "Book 2" , "Book 3" ],
data: [8%, 24%, 92%, 30% , 5%],
backgroundColor: ["yellow", "red", "blue", "blue" , "red" ],
barThickness:30
}]
labels
属性是 data
的一部分,但不是 dataset
的元素,您应该这样写:data={labels, dataset}
。您的数据长度和颜色数量也应与标签数量相匹配。我又添加了 2 本书(book4 和 book5)标签,这样我们就有了相同数量的标签、数据和颜色。
要添加'%'
符号,您可以使用options
对象根据需要修改标签。使用此对象,您可以提供回调函数来自定义标签。命名空间是 options.plugins.tooltip.callbacks
。更多内容:Tooltip | Chart.js
你说的只显示1的label
不完全是label
,而是图表的legend
。由于每本书的名称都在每个栏的正下方,因此我删除了带有 options
对象的图例。命名空间是 options.plugins.legend
以下是 Bar
对象及其外观图像
<Bar
width={100}
height={50}
data = {{
labels: ["Book1","Book2","Book3","Book4","Book5"],
datasets: [{
data: [8, 24, 92, 30, 5],
backgroundColor: ["yellow", "red", "blue", "orange", "pink"],
}
]
}}
options={{
plugins: {
legend: {
display: false
},
tooltip: {
enabled: true,
callbacks: {
label: (context) => {
let label = context.dataset.label || '';
if (label) {
label += ': ';
}
if (context.parsed.y !== null) {
label += context.parsed.y + '%';
}
return label;
}
}
}
},
}}
/>
如果您想要显示每个条形并在每个条形图的顶部有一个带有书名的图例,那么您需要做的是将每个条形图视为不同的数据集。对于每个数据集,在 label
属性中添加 book name
,对于 labels
数组,只保留 1 个值,这样它就保持为一个部分,您可以随意写入或留空作为 ""
。在这种情况下,legend
是必需的,因此 options
对象中的唯一区别是 legend
属性被省略并设置为其默认值:true
<Bar
width={100}
height={50}
data = {{
labels: [""],
datasets: [{
label:'Book1',
data: [8],
backgroundColor: ["yellow"],
},
{
label:'Book2',
data: [24],
backgroundColor: ["red"],
},
{
label:'Book3',
data: [92],
backgroundColor: ["blue"],
},
{
label:'Book4',
data: [30],
backgroundColor: ["orange"],
},
{
label:'Book5',
data: [5],
backgroundColor: ["pink"],
}
]
}}
options={{
plugins: {
tooltip: {
enabled: true,
callbacks: {
label: (context) => {
let label = context.dataset.label || '';
if (label) {
label += ': ';
}
if (context.parsed.y !== null) {
label += context.parsed.y + '%';
}
return label;
}
}
}
},
}}
/>