Maison Java javaDidacticiel 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 implémenter la conception de graphiques statistiques pour la comparaison de données multicanaux

Dec 17, 2023 pm 01:43 PM
java echarts à canaux multiples

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

  1. 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 ;

  1. É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方法
Copier après la connexion

}

(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);
Copier après la connexion

}

(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);
}
Copier après la connexion

}

  1. 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

  1. 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'
Copier après la connexion

});

// É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);
    }
});
Copier après la connexion

});

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);
}
Copier après la connexion

}

  1. 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);
Copier après la connexion
.

}

(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);
Copier après la connexion

}

.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

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.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

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.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

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.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

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.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

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

Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

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.

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

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

Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Feb 07, 2025 pm 12:11 PM

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

See all articles