


Utilisez les interfaces ECharts et Java pour implémenter la conception de graphiques statistiques pour la comparaison de données multicanaux
Utilisez les interfaces ECharts et Java pour mettre en œuvre la conception de graphiques statistiques pour la comparaison de données multicanaux
Avec le développement continu d'Internet, des produits de plus en plus diversifiés ont émergé sur le marché, et ces produits sont souvent vendus via différents canaux , tels que les canaux en ligne, les canaux hors ligne, les canaux de médias sociaux, etc. Par conséquent, les statistiques des données de vente de différents canaux et la comparaison des performances de vente entre différents canaux revêtent une grande importance pour la prise de décision de l'entreprise. Cet article explique comment utiliser les interfaces ECharts et Java pour implémenter la conception de graphiques statistiques pour la comparaison de données multicanaux.
1. Préparation
- Conception d'une table de base de données
Tout d'abord, vous devez concevoir une table de base de données pour stocker les données de vente de différents canaux. Cet article prend la base de données MySQL comme exemple pour créer une base de données nommée "sales" et une table de données nommée "channel_sales", comme indiqué ci-dessous :
CREATE TABLE channel_sales
(
id
int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '销售记录ID',
channel_name
varchar(50) NOT NULL COMMENT '渠道名称',
sales_date
date NOT NULL COMMENT '销售日期',
sales_amount
decimal(10,2) NOT NULL COMMENT '销售金额',
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=' Données de vente de différents canaux ;
- Écriture de code back-end Java
Ensuite, vous devez écrire du code back-end Java pour fournir les données de vente de la base de données à la page frontale. Cet article utilise le framework Spring Boot et utilise MyBatis pour l'accès aux données. Le code est le suivant :
(1) Créer une classe d'entité ChannelSales
classe publique ChannelSales {
private Integer id; // 销售记录ID private String channelName; // 渠道名称 private Date salesDate; // 销售日期 private BigDecimal salesAmount; // 销售金额 // 省略getters和setters方法
}
(2) Créer une interface ChannelSalesMapper
@Mapper
interface publique ChannelSalesMapper {
/** * 查询不同渠道的销售数据 * @param startDate 开始日期 * @param endDate 结束日期 * @return 销售数据列表 */ List<ChannelSales> selectByDate(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
}
(3 ) Créez la classe d'implémentation ChannelSalesServiceImpl
@Service
classe publique ChannelSalesServiceImpl implémente ChannelSalesService {
@Autowired private ChannelSalesMapper channelSalesMapper; /** * 查询不同渠道的销售数据 * @param startDate 开始日期 * @param endDate 结束日期 * @return 销售数据列表 */ @Override public List<ChannelSales> getSalesData(Date startDate, Date endDate) { return channelSalesMapper.selectByDate(startDate, endDate); }
}
- Conception de la page frontale
Enfin, la page frontale doit être conçue pour afficher la comparaison des données de vente provenant de différents canaux. Cet article utilise Echarts.js comme bibliothèque de graphiques et le combine avec Bootstrap pour la mise en page.
2. Processus de mise en œuvre
- Requête des données de vente
Tout d'abord, obtenez la plage de dates de requête à partir de la page frontale et envoyez une requête Ajax au backend pour obtenir les données de vente de différents canaux. Le code est le suivant :
// Interrogez le sélecteur de plage de dates
$('#date-range').daterangepicker({
startDate: '2021-01-01', endDate: '2021-12-31'
});
// Écoutez l'événement de clic sur le bouton de requête
$(' #query- btn').click(function() {
var range = $('#date-range').data('daterangepicker'); // 发送Ajax请求 $.ajax({ type: 'GET', url: '/api/sales-data', data: { startDate: range.startDate.format('YYYY-MM-DD'), endDate: range.endDate.format('YYYY-MM-DD') }, success: function(result) { // 处理查询结果 drawChart(result.data); } });
});
Après avoir reçu la demande de requête en arrière-plan, appelez la méthode getSalesData dans ChannelSalesService pour interroger les données de vente de la base de données et les renvoyer au premier plan -fin de page. Le code est le suivant :
@RestController
@RequestMapping("/api")
public class ApiController {
@Autowired private ChannelSalesService channelSalesService; /** * 获取不同渠道的销售数据 * @param startDate 开始日期 * @param endDate 结束日期 * @return 查询结果 */ @GetMapping("/sales-data") public Result getSalesData(@RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, @RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) { List<ChannelSales> salesData = channelSalesService.getSalesData(startDate, endDate); return Result.success(salesData); }
}
- Dessiner le graphique
Une fois les données de ventes obtenues, vous pouvez utiliser ECharts.js pour dessiner le graphique statistique correspondant. Cet article utilise des diagrammes circulaires et des diagrammes à barres pour afficher la proportion des ventes et le classement des ventes des différents canaux.
(1) Diagramme circulaire
Regardons d'abord le dessin du diagramme circulaire. Le diagramme circulaire est utilisé pour afficher la proportion de ventes des différents canaux. Le code est le suivant :
function drawChart(data) {
// 构造销售数据 var salesData = []; var totalAmount = 0; data.forEach(function(item) { salesData.push({ name: item.channelName, value: item.salesAmount }); totalAmount += item.salesAmount; }); // 绘制饼图 var pieChart = echarts.init(document.getElementById('chart-1')); var pieOption = { title: { text: '不同渠道销售占比', left: 'center' }, tooltip: { trigger: 'item', formatter: '{a} <br/>{b} : {c} ({d}%)' }, series: [ { name: '渠道', type: 'pie', radius: '60%', data: salesData.sort(function(a, b) { return a.value - b.value; }), itemStyle: { normal: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } }, label: { formatter: '{b} ({d}%)' } } ] }; pieChart.setOption(pieOption);
}
(2) Histogramme
Vient ensuite le dessin d'un histogramme. L'histogramme permet d'afficher le classement des ventes des différents canaux. Le code est le suivant :
function drawChart(data) {
// 构造销售数据 var salesData = []; data.forEach(function(item) { salesData.push({ name: item.channelName, value: item.salesAmount }); }); salesData.sort(function(a, b) { return b.value - a.value; }); // 绘制柱状图 var barChart = echarts.init(document.getElementById('chart-2')); var barOption = { title: { text: '不同渠道销售排名', left: 'center' }, tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' }, formatter: '{b}: {c} 元' }, xAxis: { type: 'category', data: salesData.map(function(item) { return item.name; }), axisLabel: { interval: 0, rotate: 45 } }, yAxis: { type: 'value' }, series: [ { name: '销售额', type: 'bar', data: salesData.map(function(item) { return item.value; }), itemStyle: { normal: { color: function(params) { var colorList = [ '#c23531', '#2f4554', '#61a0a8', '#d48265', '#91c7ae', '#749f83', '#ca8622', '#bda29a', '#6e7074', '#546570' ]; return colorList[params.dataIndex % colorList.length]; } } } } ] }; barChart.setOption(barOption);
}
.3. Affichage de l'effet
Enfin, l'effet obtenu est illustré dans la figure ci-dessous :
Figure 1 Proportions des ventes des différents canaux
Figure 2 Classement des ventes des différents canaux
Le graphique montre intuitivement que les canaux en ligne représentent la plus grande proportion des ventes. Dans le même temps, il n'y a pas beaucoup de différence dans les ventes entre les canaux en ligne et hors ligne, mais les ventes via les réseaux sociaux sont relativement faibles. Ces données aident les entreprises à comprendre les opportunités commerciales sur différents canaux et à prendre les décisions appropriées.
4. Résumé
Cet article présente comment utiliser les interfaces ECharts et Java pour implémenter la conception de graphiques statistiques pour la comparaison de données multicanaux. De cette manière, non seulement les données de vente des différents canaux peuvent être affichées visuellement, mais elles peuvent également aider les entreprises à mieux comprendre la concurrence et les opportunités commerciales entre les canaux, afin de prendre les décisions correspondantes. La mise en œuvre spécifique peut être ajustée de manière flexible en fonction de vos propres besoins pour s'adapter à différents scénarios commerciaux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

Spring Boot simplifie la création d'applications Java robustes, évolutives et prêtes à la production, révolutionnant le développement de Java. Son approche "Convention sur la configuration", inhérente à l'écosystème de ressort, minimise la configuration manuelle, allo
