0
我想定製我的水平條形圖。我的圖表看起來像這樣。如何在chart.js中自定義水平條?
,但我想這樣的圖表。
我使用Django獲得從後端的價值和水平。這裏的條形顏色與person
不同。 我的設置是:
Models.py
class Publication(models.Model):
person = models.ForeignKey(Person, on_delete=models.CASCADE)
publisher = models.CharField(max_length=300, blank=True)
publication_Date = models.CharField(max_length=4, blank=True)
def __str__(self):
return self.publisher
我得到的價值和水平,從這個方法:
def publication_by_publisher(self):
user_id = self.request.user.id
query = Person.objects.get(id=10)
publisher = query.publication_set.values('publisher').values('publication_Date').annotate(Count('publication_Date'))
level, value = [str(x.get('publication_Date')) for x in publisher], [y.get('publication_Date__count') for y in publisher]
context = {
'ob': query,
'publisher': publisher,
'level': level,
'value': value
}
return context
圖設置:
var ctx = document.getElementById("publisher");
var data = {
labels: {{ publisher.level|safe }},
datasets: [{
label: 'Publications by publisher',
backgroundColor: [
'rgb(77, 148, 255)',
'rgb(179, 0, 0)',
'rgb(57, 230, 0)',
'rgb(184, 0, 230)',
],
data: {{ publisher.value|safe }},
scaleSteps : 10,
}]
};
$('#publisher').css('background-color', '#2f3133');
var publisher = new Chart(ctx, {
type: 'horizontalBar',
data: data,
options: {
scales: {
yAxes: [{
barThickness : 35
}],
xAxes: [{
ticks: {
beginAtZero: true,
suggestedMin: 0,
suggestedMax: 10,
scaleSteps: 5,
},
}
]
}
}
});
我如何得到這樣的?
你會需要3爲每個發佈單獨的值。你現在有嗎? –
是的,我有3個價值。 –
實際上是3年,但是,在2015年有2個不同的發佈商,那麼橫條的顏色將會改變。 –