You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor ApexCharts:如何配置让X轴显示重复值?

让ApexCharts X轴显示重复日期项的配置方法

默认情况下,ApexCharts的类别轴会自动合并重复的X轴值,导致你的重复日期只显示一次。可以通过以下两种方法解决:

方案一:手动指定X轴分类并开启重复标签显示

直接将所有数据的日期(包含重复项)设置为X轴的分类列表,并开启显示重复标签的配置:

<ApexChart TItem="DataItem" Title="Measurement(mm)" Options="@chartOptions">
    <ApexPointSeries TItem="DataItem"
                     Items="datas"
                     Name="Measurement"
                     SeriesType="SeriesType.Line"
                     XValue="@(e=>e.date)"
                     YValue="@(e=>e.value)" />
</ApexChart>

@code {
    private ApexChartOptions<DataItem> chartOptions;

    protected override void OnInitialized()
    {
        chartOptions = new ApexChartOptions<DataItem>
        {
            Xaxis = new XAxis
            {
                // 手动传入包含重复日期的分类列表
                Categories = datas.Select(d => d.date).ToList(),
                Labels = new XAxisLabels
                {
                    // 强制显示重复的标签
                    ShowDuplicates = true
                }
            }
        };
        base.OnInitialized();
    }

    // 你的DataItem定义和数据源
    public class DataItem
    {
        public string date { get; set; } = string.Empty;
        public int value { get; set; }
        public int id { get; set; }
    }

    List<DataItem> datas = new List<DataItem> 
    {
        new DataItem { date = "2023-03-20 01:39:03", value = 3 },
        new DataItem { date = "2023-03-20 01:39:03", value = 4 },
        new DataItem { date = "2023-03-20 01:39:03", value = 3 },
        new DataItem { date = "2023-03-20 01:39:03", value = 5 },
        new DataItem { date = "2023-03-20 01:39:03", value = 5 },
        new DataItem { date = "2023-03-20 01:39:03", value = 6 },
        new DataItem { date = "2023-03-20 01:39:03", value = 7 },
        new DataItem { date = "2023-03-20 01:39:03", value = 9 },
        new DataItem { date = "2023-03-20 01:39:03", value = 13 }
    };
}

方案二:使用唯一ID作为X值,自定义标签显示日期

利用每个数据项的唯一id作为X轴的实际值,通过标签格式化器将其转换为日期显示,确保每个数据点都有独立的X轴项:

<ApexChart TItem="DataItem" Title="Measurement(mm)" Options="@chartOptions">
    <ApexPointSeries TItem="DataItem"
                     Items="datas"
                     Name="Measurement"
                     SeriesType="SeriesType.Line"
                     XValue="@(e=>e.id)"
                     YValue="@(e=>e.value)" />
</ApexChart>

@code {
    private ApexChartOptions<DataItem> chartOptions;

    protected override void OnInitialized()
    {
        chartOptions = new ApexChartOptions<DataItem>
        {
            Xaxis = new XAxis
            {
                Labels = new XAxisLabels
                {
                    // 根据ID匹配对应的日期显示
                    Formatter = (value) => 
                    {
                        var item = datas.FirstOrDefault(d => d.id == int.Parse(value.ToString()));
                        return item?.date ?? string.Empty;
                    }
                }
            }
        };
        base.OnInitialized();
    }

    // 确保每个DataItem有唯一ID
    public class DataItem
    {
        public string date { get; set; } = string.Empty;
        public int value { get; set; }
        public int id { get; set; }
    }

    List<DataItem> datas = new List<DataItem> 
    {
        new DataItem { id=1, date = "2023-03-20 01:39:03", value = 3 },
        new DataItem { id=2, date = "2023-03-20 01:39:03", value = 4 },
        new DataItem { id=3, date = "2023-03-20 01:39:03", value = 3 },
        new DataItem { id=4, date = "2023-03-20 01:39:03", value = 5 },
        new DataItem { id=5, date = "2023-03-20 01:39:03", value = 5 },
        new DataItem { id=6, date = "2023-03-20 01:39:03", value = 6 },
        new DataItem { id=7, date = "2023-03-20 01:39:03", value = 7 },
        new DataItem { id=8, date = "2023-03-20 01:39:03", value = 9 },
        new DataItem { id=9, date = "2023-03-20 01:39:03", value = 13 }
    };
}

说明

  • 方案一适合直接复用现有日期字段,无需修改数据源ID;
  • 方案二更稳定,因为每个数据点有唯一的X轴标识,避免ApexCharts自动合并相同值。

内容的提问来源于stack exchange,提问作者AsM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 09:15:02