Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4839

ApexChart Horizontal barchart Xaxis repetition Issue

$
0
0

I have set Custom Colors for 4 Ranges in Horizontal bar chart and values within each range have specific colors to distinguish, which are 4 Different Colors as Green Color, Yellow Color, Red Color and Black Color. As I set Custom Colors, the Xaxis value of Horizontal bar chart is repeating 2 times.

enter image description here

@using UIDesignBlazorApexChart.Client.Theme@inject IThemeService ThemeService<style>    .apexcharts-tooltip {        color: black;    }    .apexcharts-menu {        color: black;    }</style><MudGrid><MudItem xs="12"><DemoContainer><MudButtonGroup Color="MudBlazor.Color.Default" Variant="Variant.Filled" Size="MudBlazor.Size.Small" Style="margin-bottom:10px;"><MudButton FullWidth>@_buttonText</MudButton><MudMenu Icon="@Icons.Material.Filled.ArrowDropDown" Style="align-self: auto;">        @foreach (var appName in AppNames)        {<MudMenuItem OnClick="() => SetButtonText(appName)">@appName.Display</MudMenuItem>        }</MudMenu></MudButtonGroup><div Style="height:300px;background: radial-gradient(circle, rgba(255,255,255,1) 0%, rgba(232,229,231,1) 100%);"><ApexChart Height="300" @ref=chart TItem="Risk" Title=@GetTitle()  Options=options Debug><ApexPointSeries TItem="Risk"                         Items="risks"                     Name="Gross Value"                     SeriesType="SeriesType.Bar"                     XValue="@(e => e.Name)"                     YAggregate="@(e => e.Sum(e => e.Value))"                                 Color="#64DD17"                                 PointColor="e=> GetColorForValue(e)" /></ApexChart></div></DemoContainer></MudItem></MudGrid>@code {    private string GetColorForValue(Risk risk)    {        if (risk.Value < 1.25M && risk.Value > 0)        {            return "#64DD17"; // Green        }        else if (risk.Value < 2.5M && risk.Value >= 1.25M)        {            return "#FFB300"; // Orange        }        else if (risk.Value < 3.75M && risk.Value >= 2.5M)        {            return "#FF0000"; // Red        }        else         {            return "#424242"; // Gray        }    }    private ApexChart<Risk> chart;    private List<Risk> risks { get; set; } = new List<Risk>();    private string _buttonText = "Quality Data Lake for Reliance from Hexagon ETQ being added to existing SaaS platform for Seeds Reliance";    private ApexChartOptions<Risk> options;    private async Task UpdateChart()    {        await chart.RenderAsync();    }    protected override void OnInitialized()    {        risks = new List<Risk>();        foreach (var item in SampleData.GetOrders())        {            risks.Add(new Risk { Name = item.Name, Value = item.Value });        }        base.OnInitialized();        options = new ApexChartOptions<Risk>            {                PlotOptions = new PlotOptions                {                    Bar = new PlotOptionsBar                    {                        Horizontal = true                    }                },                Theme = new Theme                {                    Mode = Mode.Light,                    Palette = PaletteType.Palette1                }            };    }    private List<AppName> AppNames = new List<AppName>()    {        new AppName { Value = 1, Display = "Quality Data Lake for Reliance from Hexagon ETQ being added to existing SaaS platform for Seeds Reliance" },        new AppName { Value = 2, Display = "Application of Smart Trac sensors with 3G/4G mobile network communication for the Tractian Platform"},        new AppName { Value = 3, Display = "Leadscope Model Applier - Acute Toxicity QSAR Suite"},        new AppName { Value = 4, Display = "Orion"},        new AppName { Value = 5, Display = "SynGPT Web and Teams Version (Syngenta's Private ChatGPT Instance)" }    };    private int selectedApp = 1;    private int selectedAppID = 1; // Default selection    private string GetTitle()    {        return "Detailed Risk view for each application ";    }    private async Task SetButtonText(AppName selectedAppName)    {        _buttonText = selectedAppName.Display;        selectedAppID = selectedAppName.Value;        await UpdateChartAsync(selectedAppID);    }    private async Task SelectApp(AppName selectedAppName)    {        selectedApp = selectedAppName.Value;        await UpdateChartAsync(selectedApp);    }    private async Task UpdateChartAsync(int selectedAppID)    {        GetOrdersAsync(selectedAppID);        await chart.RenderAsync();    }    private async Task<List<Risk>> GetOrdersAsync(int selectedAppID)    {        // Replace this with the appropriate logic based on the selected app        switch (selectedAppID)        {            case 1:                return risks= await Task.FromResult(SampleData.GetOrders()); // Sample data for the first app                break;            case 2:                return risks = await Task.FromResult(SampleData2.GetOrders()); // Sample data for the second app                break;             case 3:                return risks = await Task.FromResult(SampleData3.GetOrders()); // Sample data for the second app                break;            case 4:                return risks = await Task.FromResult(SampleData4.GetOrders()); // Sample data for the first app                break;            case 5:                return risks = await Task.FromResult(SampleData5.GetOrders()); // Sample data for the second app                break; // Add cases for other apps as needed            default:                return risks = await Task.FromResult(SampleData.GetOrders()); // Default to the first app's data                break;                // Render the chart asynchronously                await chart.RenderAsync();        }    }    public class Risk    {        public string Name { get; set; }        public decimal Value { get; set; }    }    public class AppName    {        public int Value { get; set; }        public string Display { get; set; }    }    public static class SampleData    {        public static List<Risk> GetOrders()        {            var risks = new List<Risk>            {                new Risk { Name = "InformationSecurityPolicy", Value = 1.45M },                new Risk { Name = "OrganisationOfInfoSecurity", Value = 1M },                new Risk { Name = "HumanResourceSecurity", Value = 1M },                new Risk { Name = "AssetManagement", Value = 1.8M },                new Risk { Name = "AccessManagement", Value = 1.45M },                new Risk { Name = "Cryptography", Value = 1.6M },                new Risk { Name = "PhysicalEnvironmentalSecurity", Value = 1M },                new Risk { Name = "OperationsSecurity", Value = 1.25M },                new Risk { Name = "CommunicationsNetworkSecurity", Value = 1.6M },                new Risk { Name = "SystemAcquisitionDevMaintenance", Value = 3.8M },                new Risk { Name = "SupplierRelationships", Value = 1.25M },                new Risk { Name = "InformationSecurityIncidentManagement", Value = 1.75M },                new Risk { Name = "BusinessContinuityManagement", Value = 3.2M },                new Risk { Name = "LegalandRegulatoryRisk", Value = 1M }            };            return risks;        }    }    public static class SampleData2    {        public static List<Risk> GetOrders()        {            var risks = new List<Risk>            {                new Risk { Name = "InformationSecurityPolicy", Value = 3.45M },                new Risk { Name = "OrganisationOfInfoSecurity", Value = 1.35M },                new Risk { Name = "HumanResourceSecurity", Value = 1M },                new Risk { Name = "AssetManagement", Value = 2.8M },                new Risk { Name = "AccessManagement", Value = 1.45M },                new Risk { Name = "Cryptography", Value = 2.6M },                new Risk { Name = "PhysicalEnvironmentalSecurity", Value = 1M },                new Risk { Name = "OperationsSecurity", Value = 1.25M },                new Risk { Name = "CommunicationsNetworkSecurity", Value = 1.6M },                new Risk { Name = "SystemAcquisitionDevMaintenance", Value = 1M },                new Risk { Name = "SupplierRelationships", Value = 1M },                new Risk { Name = "InformationSecurityIncidentManagement", Value = 1.75M },                new Risk { Name = "BusinessContinuityManagement", Value = 2.5M },                new Risk { Name = "LegalandRegulatoryRisk", Value = 1M }            };            return risks;        }    }    public static class SampleData3    {        public static List<Risk> GetOrders()        {            var risks = new List<Risk>            {                new Risk { Name = "InformationSecurityPolicy", Value = 2.45M },                new Risk { Name = "OrganisationOfInfoSecurity", Value = 1M },                new Risk { Name = "HumanResourceSecurity", Value = 1.8M },                new Risk { Name = "AssetManagement", Value = 1M },                new Risk { Name = "AccessManagement", Value = 1.6M },                new Risk { Name = "Cryptography", Value = 1.45M },                new Risk { Name = "PhysicalEnvironmentalSecurity", Value = 1M },                new Risk { Name = "OperationsSecurity", Value = 3.8M },                new Risk { Name = "CommunicationsNetworkSecurity", Value = 1.6M },                new Risk { Name = "SystemAcquisitionDevMaintenance", Value = 2M },                new Risk { Name = "SupplierRelationships", Value = 1.25M },                new Risk { Name = "InformationSecurityIncidentManagement", Value = 1.75M },                new Risk { Name = "BusinessContinuityManagement", Value = 3.2M },                new Risk { Name = "LegalandRegulatoryRisk", Value = 1M }            };            return risks;        }    }    public static class SampleData4    {        public static List<Risk> GetOrders()        {            var risks = new List<Risk>            {                new Risk { Name = "InformationSecurityPolicy", Value = 1.45M },                new Risk { Name = "OrganisationOfInfoSecurity", Value = 1M },                new Risk { Name = "HumanResourceSecurity", Value = 1.8M },                new Risk { Name = "AssetManagement", Value = 1M },                new Risk { Name = "AccessManagement", Value = 1.6M },                new Risk { Name = "Cryptography", Value = 1.45M },                new Risk { Name = "PhysicalEnvironmentalSecurity", Value = 1M },                new Risk { Name = "OperationsSecurity", Value = 3.8M },                new Risk { Name = "CommunicationsNetworkSecurity", Value = 1.6M },                new Risk { Name = "SystemAcquisitionDevMaintenance", Value = 3.5M },                new Risk { Name = "SupplierRelationships", Value = 1.25M },                new Risk { Name = "InformationSecurityIncidentManagement", Value = 1.75M },                new Risk { Name = "BusinessContinuityManagement", Value = 3.2M },                new Risk { Name = "LegalandRegulatoryRisk", Value = 1M }            };            return risks;        }    }    public static class SampleData5    {        public static List<Risk> GetOrders()        {            var risks = new List<Risk>            {                 new Risk { Name = "InformationSecurityPolicy", Value = 2.45M },                new Risk { Name = "OrganisationOfInfoSecurity", Value = 1M },                new Risk { Name = "HumanResourceSecurity", Value = 1.8M },                new Risk { Name = "AssetManagement", Value = 1M },                new Risk { Name = "AccessManagement", Value = 1.6M },                new Risk { Name = "Cryptography", Value = 1.45M },                new Risk { Name = "PhysicalEnvironmentalSecurity", Value = 1M },                new Risk { Name = "OperationsSecurity", Value = 3.8M },                new Risk { Name = "CommunicationsNetworkSecurity", Value = 1.6M },                new Risk { Name = "SystemAcquisitionDevMaintenance", Value = 2M },                new Risk { Name = "SupplierRelationships", Value = 1.25M },                new Risk { Name = "InformationSecurityIncidentManagement", Value = 1.75M },                new Risk { Name = "BusinessContinuityManagement", Value = 3.2M },                new Risk { Name = "LegalandRegulatoryRisk", Value = 1M }            };            return risks;        }    }}

I want X-axis as 0, 0.5,1,1.5,2,2.5,3,3.5,4..... But it is displaying as 0,1,1,2,2,3,3,4,4.... I have tried using apexchart nuget package as well as apexchart.js facing the same issues in both sides. How to Fix This Issue?


Viewing all articles
Browse latest Browse all 4839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>