我想用chart.js画一条向后弯曲的线。
例如:方程x=-(y-1)**2+1
应该创建这个图:
我在我的网页中使用python和flask。在flask路由中生成图形数据的代码如下所示:
@bp.route('/chart', methods=('GET',))
def chart():
y = np.linspace(0, 2, 10).tolist()
x = [-(i-1)**2+1 for i in y]
return render_template(
'chart.html',
x=x,
y=y
)
字符串
我的HTML文件看起来像这样:
<div>
<meta id="x" data-x="{{ x }}">
<meta id="y" data-y="{{ y }}">
<canvas id="chart"></canvas>
</div>
<script src="https://cdn.jsdelivr.net/npm/chart.js@4/dist/chart.umd.min.js"></script>
<script>
const canvas = document.getElementById('chart');
const x = JSON.parse(document.getElementById('x').getAttribute('data-x'));
const y = JSON.parse(document.getElementById('y').getAttribute('data-y'));
new Chart(canvas, {
type: 'line',
data: {
labels: x,
datasets: [{
label: 'Backwards-Bending Line',
data: y,
borderWidth: 1
}]
},
})
</script>
型
这段代码创建了下面的图:
你可以看到x轴先增加后减少,而不是向后弯曲。我怎样才能让这条线向后弯曲?
1条答案
按热度按时间a2mppw5e1#
在
Chart.js
配置中,您应该摆脱data.labels
,而是将datasets.data
定义为array
对象,每个对象都有x
和y
属性。您的案例的简化结果如下所示:
个字符
另请参阅
Chart.js
文档中的数据结构>对象[]。