angular - Chart.js 增加字体大小以获得更高分辨率(即与监视器无关的图表配置)
问题描述
我的图表完美地显示了它的标签(AxesLabels、DataLabels)以及定义的字体大小,该字体大小以正常分辨率(1920 * 180)传递给图形的配置。
**STEP1: Defined the chart in my angular component(.html) as:**
<div class="chartStyle">
<canvas #canvas baseChart id="myChart"
[datasets]="lineChartData"
[chartType]="lineChartType"
[labels]="lineChartLabels"
[colors]="lineChartColors"
[legend]="lineChartLegend"
[options]="lineChartOptions"
(chartClick)="chartClicked($event)"></canvas>
</div>
STEP2:从component(*.ts)构造函数中设置图表字体配置(即lineChartOptions):
export class MyChartComponent {
public lineChartType: string;
public lineChartLegend: false;
public lineChartOptions: any;
public lineChartPlugins: any;
//similarly other configs are done
constructor() {
this.setInitialChartData();
}
private setInitialChartData(): void {
this.lineChartType = 'line';
this.lineChartLegend = true;
this.lineChartData = [
{ data: [85, 72, 78, 75, 77, 75], label: 'Crude oil prices' },
];
this.lineChartLabels = ['January', 'February', 'March', 'April', 'May', 'June'];
this.lineChartOptions = {
responsive: 'true',
plugins: {
datalabels: {
align: 'top',
color: 'black',
font: {
size: 14,
weight: 600
}
}
};
//other methods unrelated
}
上面的步骤显示了我当前是如何绘制图表的。
我的问题是:当我查看相同的图表时分辨率更高,字体大小非常小。那么,如何动态设置所有与尺寸相关的配置,以便图表适用于所有分辨率显示器。
我尝试更改图表的 devicePixelRatio,但遗憾的是它不起作用。
不要混淆,即使我以 100% 的比例查看此图表,数据标签的字体大小也不会缩放。
解决方案
在调用 new Chart() 之前,您可以设置默认 fontSize Chart.defaults.global.defaultFontSize = fontSize;
,默认为 10。
如果你得到宽度和高度,你可以检查分辨率并根据它调整字体大小。
推荐阅读
- ios - monospacedSystemFontOfSize:weight: 在 iOS 12 中不可用?
- flutter - 颤振开关通过点击而不是滑动改变值(无法获得焦点)
- yii2 - Yii2 网格视图行顺序/排名类似于 SerialColumns
- asp.net - 无法连接到 SQL Server Browser。确保 SQL Server Browser 已启动
- javascript - 将 MongoDB 查询结果作为变量返回而不是控制台
- android - 用于多个子回收器视图的 android jetpack 分页
- javascript - 由于react组件的key值出现错误但是不知道怎么改
- python - 绘制条形图
- web - 通过 google 访问的网站目录
- c# - Autodesk forge 和 CRM 365 之间如何集成?