Skip to content

Fix stacked bar column width when rendering a single-element chart#11

Closed
Copilot wants to merge 1 commit intodevfrom
copilot/fix-column-width-stacked-chart
Closed

Fix stacked bar column width when rendering a single-element chart#11
Copilot wants to merge 1 commit intodevfrom
copilot/fix-column-width-stacked-chart

Conversation

Copy link
Contributor

Copilot AI commented Feb 25, 2026

ScottPlot expands bar width to fill available space when only one bar is rendered, resulting in a column that spans the entire chart area.

Changes

  • Sources/StackedBarChart.cs: Compute barSize before bar creation — 0.5 when there is exactly one data group, 0.8 otherwise — and apply it via the Size property on each ScottPlot.Bar:
double barSize = values.Count == 1 ? 0.5 : 0.8;
// ...
bars.Add(new ScottPlot.Bar {
    // ...
    Size = barSize,
});
  • Tests/AsBuiltReport.Chart.Functions.Tests.ps1: Added two test cases covering the single-element path:
    • New-StackedBarChart completes without error with one label/value group
    • Output is a valid FileSystemInfo pointing to an existing file
Original prompt

This section details on the original issue you should resolve

<issue_title>Set column width in a stacked chart</issue_title>
<issue_description>### Bug description

Set column width in a stacked chart when there only one element to display

Command-line input

New- PieChart

Steps to reproduce

  1. Generate a Pie chart with only one element
  2. The Chart column width take all of the area space

Expected behaviour

The generated chart display the bar column with a moderate width size that not fill all of the space of the chart area

Screenshots

No response

Operating System

All Os

PowerShell Version

Name Value


PSVersion 7.5.4
PSEdition Core
GitCommitId 7.5.4
OS Arch Linux
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0

PowerShell Modules

Name Version


AsBuiltReport.Chart 0.2.0
AsBuiltReport.Core 1.6.2
PScribo 0.11.1

Additional Context

https://github.com/AsBuiltReport/AsBuiltReport.Chart/blob/dev/Sources/StackedBarChart.cs

No response

Before submitting

Comments on the Issue (you are @copilot in this section)


🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

Copilot AI changed the title [WIP] Fix column width in stacked chart for single element Fix stacked bar column width when rendering a single-element chart Feb 25, 2026
Copilot AI requested a review from rebelinux February 25, 2026 18:33
@github-actions
Copy link

PSScriptAnalyzer results:

Errors: [0], Warnings: [35], Information: [0]


RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 44
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 45
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 46
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 50
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 57
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 70
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 73
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 103
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 108
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 124
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 125
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 127
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 132
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 133
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 138
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 139
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 140
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 141
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 142
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 143
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 144
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 145
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 149
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 151
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 152
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 158
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 159
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 160
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 165
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 166
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 167
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 168
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 171
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 175
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

RuleName   : PSAvoidUsingWriteHost
Severity   : Warning
ScriptName : Invoke-Tests.ps1
Line       : 178
Message    : File 'Invoke-Tests.ps1' uses Write-Host. Avoid using Write-Host 
             because it might not work in all hosts, does not work when there 
             is no host, and (prior to PS 5.0) cannot be suppressed, captured, 
             or redirected. Instead, use Write-Output, Write-Verbose, or 
             Write-Information.

@rebelinux rebelinux marked this pull request as ready for review February 25, 2026 19:59
@rebelinux rebelinux closed this Feb 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Set column width in a stacked chart

2 participants