Skip to content

Commit

Permalink
Restore true stroke paths on bars and columns.
Browse files Browse the repository at this point in the history
Strokes on different bars/columns should not overlap or cause
bar/columns to appear longer or wider than their values dictate or
be visually ambiguous.

border-radius-test: change breakpoint for better aesthetics at narrow
chart width.

stacked-column-outline.xml: New sample source
stacked-column-outline.* : Products of new sample
  • Loading branch information
rosco54 committed Oct 10, 2024
1 parent 474c0f2 commit 0025341
Show file tree
Hide file tree
Showing 5 changed files with 490 additions and 6 deletions.
174 changes: 174 additions & 0 deletions samples/react/column/stacked-column_outline.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Stacked Column</title>

<link href="../../assets/styles.css" rel="stylesheet" />

<style>

#chart {
max-width: 650px;
margin: 35px auto;
}

</style>

<script>
window.Promise ||
document.write(
'<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"><\/script>'
)
window.Promise ||
document.write(
'<script src="https://cdn.jsdelivr.net/npm/[email protected]/classList.min.js"><\/script>'
)
window.Promise ||
document.write(
'<script src="https://cdn.jsdelivr.net/npm/findindex_polyfill_mdn"><\/script>'
)
</script>


<script src="https://cdn.jsdelivr.net/npm/[email protected]/umd/react.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/umd/react-dom.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/prop-types.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.34/browser.min.js"></script>
<script src="../../../dist/apexcharts.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/react-apexcharts.iife.min.js"></script>


<script>
// Replace Math.random() with a pseudo-random number generator to get reproducible results in e2e tests
// Based on https://gist.github.com/blixt/f17b47c62508be59987b
var _seed = 42;
Math.random = function() {
_seed = _seed * 16807 % 2147483647;
return (_seed - 1) / 2147483646;
};
</script>


</head>

<body>

<div id="app"></div>

<div id="html">
&lt;div id=&quot;chart&quot;&gt;
&lt;ReactApexChart options={this.state.options} series={this.state.series} type=&quot;bar&quot; height={350} /&gt;
&lt;/div&gt;
</div>

<script type="text/babel">
class ApexChart extends React.Component {
constructor(props) {
super(props);

this.state = {

series: [{
name: 'PRODUCT A',
data: [40, 50, 30, 60, 20, 40]
}, {
name: 'PRODUCT B',
data: [10, 20, 20, 0, 10, 20]
}, {
name: 'PRODUCT C',
data: [10, 10, 10, 10, 20, 10]
}, {
name: 'PRODUCT D',
data: [10, 10, 20, 10, 20, 10]
}],
options: {
chart: {
type: 'bar',
height: 350,
stacked: true,
toolbar: {
show: true
},
zoom: {
enabled: true
}
},
responsive: [{
breakpoint: 650,
options: {
legend: {
position: 'bottom',
offsetX: -10,
offsetY: 0
}
}
}],
plotOptions: {
bar: {
horizontal: false,
borderRadius: 10,
borderRadiusApplication: 'end', // 'around', 'end'
borderRadiusWhenStacked: 'last', // 'all', 'last'
dataLabels: {
total: {
enabled: true,
style: {
fontSize: '13px',
fontWeight: 900
}
}
}
},
},
stroke: {
show: true,
width: 4
},
dataLabels:{
style: {
colors: ['black']
}
},
xaxis: {
type: 'datetime',
categories: ['01/01/2011 GMT', '01/02/2011 GMT', '01/03/2011 GMT', '01/04/2011 GMT',
'01/05/2011 GMT', '01/06/2011 GMT'
],
},
legend: {
position: 'right',
offsetY: 40
},
fill: {
opacity: 0
}
},


};
}



render() {
return (
<div>
<div id="chart">
<ReactApexChart options={this.state.options} series={this.state.series} type="bar" height={350} />
</div>
<div id="html-dist"></div>
</div>
);
}
}

const domContainer = document.querySelector('#app');
ReactDOM.render(React.createElement(ApexChart), domContainer);
</script>


</body>
</html>
21 changes: 15 additions & 6 deletions samples/source/column/stacked-column_outline.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ chart: {
}
},
responsive: [{
breakpoint: 480,
breakpoint: 650,
options: {
legend: {
position: 'bottom',
Expand All @@ -40,6 +40,15 @@ plotOptions: {
}
},
},
stroke: {
show: true,
width: 4
},
dataLabels:{
style: {
colors: ['black']
}
},
xaxis: {
type: 'datetime',
categories: ['01/01/2011 GMT', '01/02/2011 GMT', '01/03/2011 GMT', '01/04/2011 GMT',
Expand All @@ -51,23 +60,23 @@ legend: {
offsetY: 40
},
fill: {
opacity: 1
opacity: 0
}
</options>

<series>
[{
name: 'PRODUCT A',
data: [40, 50, 30, 60, 20, 45]
data: [40, 50, 30, 60, 20, 40]
}, {
name: 'PRODUCT B',
data: [15, 25, 20, 5, 15, 25]
data: [10, 20, 20, 0, 10, 20]
}, {
name: 'PRODUCT C',
data: [15, 15, 15, 15, 20, 15]
data: [10, 10, 10, 10, 20, 10]
}, {
name: 'PRODUCT D',
data: [20, 5, 25, 15, 20, 5]
data: [10, 10, 20, 10, 20, 10]
}]
</series>
</chart>
141 changes: 141 additions & 0 deletions samples/vanilla-js/column/stacked-column_outline.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Stacked Column</title>

<link href="../../assets/styles.css" rel="stylesheet" />

<style>

#chart {
max-width: 650px;
margin: 35px auto;
}

</style>

<script>
window.Promise ||
document.write(
'<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"><\/script>'
)
window.Promise ||
document.write(
'<script src="https://cdn.jsdelivr.net/npm/[email protected]/classList.min.js"><\/script>'
)
window.Promise ||
document.write(
'<script src="https://cdn.jsdelivr.net/npm/findindex_polyfill_mdn"><\/script>'
)
</script>


<script src="../../../dist/apexcharts.js"></script>


<script>
// Replace Math.random() with a pseudo-random number generator to get reproducible results in e2e tests
// Based on https://gist.github.com/blixt/f17b47c62508be59987b
var _seed = 42;
Math.random = function() {
_seed = _seed * 16807 % 2147483647;
return (_seed - 1) / 2147483646;
};
</script>


</head>

<body>
<div id="chart"></div>

<script>

var options = {
series: [{
name: 'PRODUCT A',
data: [40, 50, 30, 60, 20, 40]
}, {
name: 'PRODUCT B',
data: [10, 20, 20, 0, 10, 20]
}, {
name: 'PRODUCT C',
data: [10, 10, 10, 10, 20, 10]
}, {
name: 'PRODUCT D',
data: [10, 10, 20, 10, 20, 10]
}],
chart: {
type: 'bar',
height: 350,
stacked: true,
toolbar: {
show: true
},
zoom: {
enabled: true
}
},
responsive: [{
breakpoint: 650,
options: {
legend: {
position: 'bottom',
offsetX: -10,
offsetY: 0
}
}
}],
plotOptions: {
bar: {
horizontal: false,
borderRadius: 10,
borderRadiusApplication: 'end', // 'around', 'end'
borderRadiusWhenStacked: 'last', // 'all', 'last'
dataLabels: {
total: {
enabled: true,
style: {
fontSize: '13px',
fontWeight: 900
}
}
}
},
},
stroke: {
show: true,
width: 4
},
dataLabels:{
style: {
colors: ['black']
}
},
xaxis: {
type: 'datetime',
categories: ['01/01/2011 GMT', '01/02/2011 GMT', '01/03/2011 GMT', '01/04/2011 GMT',
'01/05/2011 GMT', '01/06/2011 GMT'
],
},
legend: {
position: 'right',
offsetY: 40
},
fill: {
opacity: 0
}
};

var chart = new ApexCharts(document.querySelector("#chart"), options);
chart.render();


</script>


</body>
</html>
Loading

0 comments on commit 0025341

Please sign in to comment.