[ad_1]
La décote des smartphones varie beaucoup d’une marque à l’autre, et deux types de consommateurs et de consommatrices gagneraient à s’y intéresser : ceux qui cherchent une bonne affaire d’occasion et ceux qui veulent investir dans un modèle neuf ne perdant pas sa valeur trop rapidement.
Pour comparer la décote des grandes marques de téléphones, nous avons relevé l’évolution des prix de modèles sortis en 2020, 2021 et 2022 sur le marché de l’occasion et du reconditionné. Nous avons porté notre attention sur deux gammes : les mobiles entre 700 et 1 000 euros, et les mobiles entre 400 et 500 euros, au sein des catalogues de Samsung, Apple, Xiaomi et Oppo. Dans le haut de gamme Apple, par exemple, nous avons étudié les prix des iPhone 12, 13 et 14. Dans le milieu de gamme Samsung, la cote des Galaxy A51, A52 et A53.
Résultat : les mobiles Android connaissent un sort radicalement différent de ceux d’Apple, ceux faisant partie de la catégorie haut de gamme décotant particulièrement vite. Les trois mobiles Android sortis en 2022 que nous avons étudiés ne valent ainsi plus qu’un tiers de leur prix neuf environ, les Galaxy S de Samsung n’échappant pas à cette érosion. En revanche, le milieu de gamme résiste mieux : les mobiles de 2022 valent encore environ 40 % du prix du neuf, Samsung tirant cette fois-ci son épingle du jeu.
Cote actuelle des mobiles haut de gamme en fonction de leur mois et année de sortie
require(['//s1.lemde.fr/assets-redaction/js/grumpycharts/highcharts-6-1-1.js'], function() { Highcharts.setOptions({ lang: { decimalPoint: ',', thousandsSep: ' ', months: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], shortMonths: [ 'jan.' , 'fév.' , 'mars' , 'avr.' , 'mai' , 'juin' , 'juil.' , 'août' , 'sept.' , 'oct.' , 'nov.' , 'déc.'], weekdays: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'], noData: 'Pas de données à afficher', numericSymbols: [null, 'M', 'G', 'T', 'P', 'E'] } }); var chart = new Highcharts.Chart( { "title": { "text": " ", "style": { "color": "transparent" } }, "chart": { "type": "line", "description": "", "backgroundColor": "rgba(255,255,255,0)", "borderRadius": 0, "alignTicks": false, "spacingTop": 30, "spacingBottom": 10, "spacingLeft": 10, "spacingRight": 10, "style": { "fontFamily": "Marr Sans,Helvetica,Arial!important", "fontSize": "13px" }, "renderTo": "d_graph_17314304995" }, "plotOptions": { "series": { "stacking": "", "marker": { "fillColor": "", "enabled": true, "radius": 3, "symbol": "circle", "lineWidth": 2, "lineColor": null, "states": { "hover": { "lineWidth": 2, "lineWidthPlus": 0, "radiusPlus": 1 } } }, "dataLabels": { "style": { "textOutline": "0.25px contrast", "fontSize": "12px", "zIndex": "-1", "letterSpacing": "0.25" }, "useHTML": true }, "connectNulls": true, "fillOpacity": 0.2, "states": { "hover": { "enabled": true, "lineWidth": 0, "lineWidthPlus": 0 } } }, "colorByPoint": false, "line": { "animation": { "duration": 0 } } }, "yAxis": [ { "title": { "text": "" }, "labels": { "format": "{value:,.0f}%", "space": true, "y": -3, "x": 5, "align": "left", "useHTML": true, "zIndex": -1, "step": 1, "style": { "color": "#2A303", "whiteSpace": "nowrap", "fontSize": "12px", "align": "right" }, "formatter": function () { let val_tick = this.value; if (this.chart.yAxis[0].userOptions.labels.space == true) val_tick = val_tick.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ").replace(".", ",") + this.chart.yAxis[0].userOptions.labels.format.replace("{value:,.0f}", " ").replace("{value}", " "); if (this.axis.paddedTicks.indexOf(this.value) % 2 != 0) return val_tick }
},
"min": 0.0,
"startOnTick": true,
"max": 50.0,
"endOnTick": true,
"type": "linear",
"reversed": "",
"plotLines": [
{
"value": "",
"label": {
"text": "",
"align": "left",
"rotation": "0",
"useHTML": false,
"x": 5,
"style": {
"color": "#ccc"
}
},
"color": "#ccc",
"width": "",
"zIndex": 5
}
],
"plotBands": [
{
"from": "",
"to": "",
"label": {
"text": "",
"align": "left",
"verticalAlign": "top",
"rotation": "0",
"useHTML": false,
"textAlign": "",
"x": "",
"y": -5
},
"color": null,
"zIndex": -1
}
],
"offset": 50,
"tickLength": 50,
"tickWidth": 1,
"tickPosition": "inside",
"opposite": false,
"id": "0",
"alignTicks": true,
"showFirstLabel": true,
"lineWidth": 0,
"gridZIndex": -1
}
],
"xAxis": {
"title": {
"text": "Date de sortie"
},
"labels": {
"format": "{value}",
"step": "1",
"formatdt": "%Y",
"space": false,
"useHTML": true,
"zIndex": -1,
"padding": 30,
"autoRotation": [
0,
-40,
-60,
-80
],
"style": {
"color": "#2A303",
"fontSize": "12px"
}
},
"type": "linear",
"plotLines": [
{
"value": "",
"label": {
"text": "",
"textAlign": "left",
"verticalAlign": "top",
"rotation": "90",
"useHTML": false,
"x": 5,
"y": 12,
"style": {
"color": "#ccc"
}
},
"color": "#ccc",
"width": "",
"zIndex": 5
}
],
"plotBands": [
{
"from": "",
"to": "",
"label": {
"text": "",
"align": "left",
"verticalAlign": "top",
"rotation": "90",
"useHTML": false,
"textAlign": "",
"x": "",
"y": 10,
"zIndex": -1
},
"color": null,
"zIndex": -10
}
],
"categories": [
"d 2022",
"n",
"o",
"s",
"a",
"j",
"j",
"m",
"a",
"m",
"f",
"J ",
"d 2021",
"n",
"o",
"s",
"a",
"j",
"j",
"m",
"a",
"m",
"f",
"J ",
"d 2020",
"n",
"o",
"s",
"a",
"j",
"j",
"m",
"a",
"m",
"f"
],
"lineColor": "#2E3942",
"tickLength": 7,
"lineWidth": 1
},
"tooltip": {
"valuePrefix": "",
"valueSuffix": "",
"valueDecimals": "",
"xDateFormat": "",
"style": {
"color": "#16212c",
"font-family": "'Marr Sans',Helvetica,Arial!important",
"opacity": 1
},
"shared": "",
"title": "{{Apple}}{{Samsung}}{{Xiaomi}}{{Oppo}}",
"content": "",
"annot": "",
"strColumns": [
[
"Ann\u00e9e",
"d 2022",
"n",
"o",
"s",
"a",
"j",
"j",
"m",
"a",
"m",
"f",
"J ",
"d 2021",
"n",
"o",
"s",
"a",
"j",
"j",
"m",
"a",
"m",
"f",
"J ",
"d 2020",
"n",
"o",
"s",
"a",
"j",
"j",
"m",
"a",
"m",
"f"
],
[
"Apple",
"",
"",
"",
49.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
44.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
32.0,
"",
"",
"",
"",
"",
"",
""
],
[
"Samsung",
"",
"",
"",
"",
"",
"",
"",
"",
34.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
26.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
21.0,
""
],
[
"Xiaomi",
"",
"",
35.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
26.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
24.0,
"",
""
],
[
"Oppo",
"",
33.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
32.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
25.0,
"",
"",
""
]
],
"useHTML": true,
"backgroundColor": "rgba(255,255,255,1)",
"borderColor": "#E2E4E9",
"borderRadius": 0,
"borderWidth": 1,
"shadow": false,
"hideDelay": 200,
"headerFormat": "{point.key}
",
"pointFormat": "\u25cf {series.name} : {point.y}
",
"formatter": function(tooltip) {
function addSpace(nStr) { if (!isNaN(nStr)) { nStr = String(nStr); nStr = nStr.replace(".", ","); nStr = nStr.split(","); if (nStr[0].length > 4) { let x = nStr[0].split('.'); let x1 = x[0]; let x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) x1 = x1.replace(rgx, '$1' + ' ' + '$2'); nStr[0] = x1+x2; } return nStr; } else if (nStr.indexOf("https://www.lemonde.fr/") >= 0) { nStr = nStr.split("https://www.lemonde.fr/"); return (addSpace(nStr[0]) + " - " + addSpace(nStr[1])) } else if (nStr.length > 1) return (addSpace(nStr[0]) + " - " + addSpace(nStr[1])) else return nStr }
function matchInArray(exp, skeleton, index, shared){ let chrono = 0; if (skeleton.chart.type != "pie" && skeleton.xAxis.type != "linear") chrono = 1; while (exp.indexOf("{{current}}") != -1 && shared != 1) { shared[0] = addSpace(shared[0]); if (skeleton.tooltip.valuePrefix != "") skeleton.tooltip.valuePrefix += " "; var string_current = "● " + shared[1] + " : " + skeleton.tooltip.valuePrefix + shared[0] + skeleton.tooltip.valueSuffix; var new_exp_current = exp.replace("{{current}}", string_current); exp = new_exp_current }
while (exp.indexOf("{{current}}") != -1 && shared == 1) {
var string_current = "";
if (skeleton.tooltip.valuePrefix != "") {
for (var i = 0; i < skeleton.series.length; i++) {
if (skeleton.series[i].data[index][1])
string_current = string_current + "● " + skeleton.series[i].name + " : " + skeleton.tooltip.valuePrefix + addSpace(skeleton.series[i].data[index][0 + chrono]) + skeleton.tooltip.valueSuffix + "
";
}
}
else {
for (var i = 0; i < skeleton.series.length; i++){
if (skeleton.series[i].data[index][1])
string_current = string_current + "● " + skeleton.series[i].name + " : " + addSpace(skeleton.series[i].data[index][0 + chrono]) + " " + skeleton.tooltip.valueSuffix + "
";
}
}
var new_exp_current = exp.replace("{{current}}", string_current);
exp = new_exp_current;
}
for (var i = 0; i < skeleton.tooltip.strColumns.length; i++){
var stringSearch="{{" + skeleton.tooltip.strColumns[i][0] + '}}';
while (exp.indexOf(stringSearch) != -1) {
exp_replace = skeleton.tooltip.strColumns[i][index + 1];
if (chrono == 1 && i == 0){
var format = skeleton.tooltip.xDateFormat != '' ? skeleton.tooltip.xDateFormat : skeleton.xAxis.labels.format.replace("{value:", "").replace("}", "");
exp_replace = Highcharts.dateFormat(format, new Date(String(exp_replace)))
}
var new_exp = exp.replace(stringSearch, exp_replace);
exp = new_exp;
}
}
return exp;
}
var str_tooltip = "";
var index = this.series.xData.indexOf(this.point.x);
if (this.series.yData[index][0])
var yData = String(this.series.yData[index][0]) + "https://www.lemonde.fr/" + String(this.series.yData[index][1]);
else
var yData = this.series.yData[index];
if (tooltip.chart.userOptions.tooltip.title && this.series.yData[index])
str_tooltip = str_tooltip + "" + matchInArray(tooltip.chart.userOptions.tooltip.title, tooltip.chart.userOptions, index, [yData, this.series.name, this.series.color]) + '';
else if (tooltip.chart.userOptions.tooltip.title && this.series.valueData[index])
str_tooltip = str_tooltip + "" + matchInArray(tooltip.chart.userOptions.tooltip.title, tooltip.chart.userOptions, index, [this.series.valueData[index], this.series.points[index].name, this.series.points[index].color]) + '';
else if (!tooltip.chart.userOptions.tooltip.title && tooltip.chart.userOptions.chart.type == "pie")
str_tooltip = str_tooltip + "" + tooltip.chart.userOptions.series[0].data[index].name + '';
else if (tooltip.chart.userOptions.chart.type != "treemap")
str_tooltip = str_tooltip + "" + tooltip.chart.userOptions.tooltip.strColumns[0][index + 1] + '';
if (tooltip.chart.userOptions.tooltip.content && this.series.yData[index])
str_tooltip = str_tooltip + '
' + matchInArray(tooltip.chart.userOptions.tooltip.content, tooltip.chart.userOptions, index, [this.series.yData[index], this.series.name, this.series.color]);
else if (tooltip.chart.userOptions.tooltip.content && this.series.valueData[index]) {
str_tooltip = str_tooltip + '
' + matchInArray(tooltip.chart.userOptions.tooltip.content, tooltip.chart.userOptions, index, [this.series.valueData[index], this.series.points[index].name, this.series.points[index].color]);
}
return ("
' + tooltip.chart.userOptions.tooltip.annot + "
« )}
},
« legend »: {
« enabled »: « 1 »,
« reversed »: « »,
« layout »: « horizontal »,
« verticalAlign »: « top »,
« align »: « left »,
« margin »: 40,
« y »: -30,
« x »: 0,
« itemStyle »: {
« fontSize »: 13,
« font-family »: « ‘Marr Sans’,Helvetica,arial »,
« fontWeight »: « normal »,
« color »: « #2A303B »
},
« itemMarginBottom »: 10
},
« dark »: false,
« series »: [
{
« stack »: « null »,
« name »: « Apple »,
« lineWidth »: 2,
« color »: « #D2AD5C »,
« type »: « »,
« yAxis »: « 0 »,
« visible »: true,
« dataLabels »: {
« enabled »: false
},
« step »: « »,
« data »: [
[
null,
« »,
« pt0 »,
true,
false
],
[
null,
« »,
« pt1 »,
false,
false
],
[
null,
« »,
« pt2 »,
false,
false
],
[
49.0,
« »,
« pt3 »,
false,
false
],
[
null,
« »,
« pt4 »,
false,
false
],
[
null,
« »,
« pt5 »,
false,
false
],
[
null,
« »,
« pt6 »,
false,
false
],
[
null,
« »,
« pt7 »,
false,
false
],
[
null,
« »,
« pt8 »,
false,
false
],
[
null,
« »,
« pt9 »,
false,
false
],
[
null,
« »,
« pt10 »,
false,
false
],
[
null,
« »,
« pt11 »,
false,
false
],
[
null,
« »,
« pt12 »,
false,
false
],
[
null,
« »,
« pt13 »,
false,
false
],
[
null,
« »,
« pt14 »,
false,
false
],
[
44.0,
« »,
« pt15 »,
false,
false
],
[
null,
« »,
« pt16 »,
false,
false
],
[
null,
« »,
« pt17 »,
false,
false
],
[
null,
« »,
« pt18 »,
false,
false
],
[
null,
« »,
« pt19 »,
false,
false
],
[
null,
« »,
« pt20 »,
false,
false
],
[
null,
« »,
« pt21 »,
false,
false
],
[
null,
« »,
« pt22 »,
false,
false
],
[
null,
« »,
« pt23 »,
false,
false
],
[
null,
« »,
« pt24 »,
false,
false
],
[
null,
« »,
« pt25 »,
false,
false
],
[
null,
« »,
« pt26 »,
false,
false
],
[
32.0,
« »,
« pt27 »,
false,
false
],
[
null,
« »,
« pt28 »,
false,
false
],
[
null,
« »,
« pt29 »,
false,
false
],
[
null,
« »,
« pt30 »,
false,
false
],
[
null,
« »,
« pt31 »,
false,
false
],
[
null,
« »,
« pt32 »,
false,
false
],
[
null,
« »,
« pt33 »,
false,
false
],
[
null,
« »,
« pt34 »,
true,
false
]
],
« keys »: [
« y »,
« color »,
« id »,
« marker.enabled »,
« dataLabels.enabled »
]
},
{
« stack »: « null »,
« name »: « Samsung »,
« lineWidth »: 2,
« color »: « #A2DCE7 »,
« type »: « »,
« yAxis »: « 0 »,
« visible »: true,
« dataLabels »: {
« enabled »: false
},
« step »: « »,
« data »: [
[
null,
« »,
« pt35 »,
true,
false
],
[
null,
« »,
« pt36 »,
false,
false
],
[
null,
« »,
« pt37 »,
false,
false
],
[
null,
« »,
« pt38 »,
false,
false
],
[
null,
« »,
« pt39 »,
false,
false
],
[
null,
« »,
« pt40 »,
false,
false
],
[
null,
« »,
« pt41 »,
false,
false
],
[
null,
« »,
« pt42 »,
false,
false
],
[
34.0,
« »,
« pt43 »,
false,
false
],
[
null,
« »,
« pt44 »,
false,
false
],
[
null,
« »,
« pt45 »,
false,
false
],
[
null,
« »,
« pt46 »,
false,
false
],
[
null,
« »,
« pt47 »,
false,
false
],
[
null,
« »,
« pt48 »,
false,
false
],
[
null,
« »,
« pt49 »,
false,
false
],
[
null,
« »,
« pt50 »,
false,
false
],
[
null,
« »,
« pt51 »,
false,
false
],
[
null,
« »,
« pt52 »,
false,
false
],
[
null,
« »,
« pt53 »,
false,
false
],
[
null,
« »,
« pt54 »,
false,
false
],
[
null,
« »,
« pt55 »,
false,
false
],
[
null,
« »,
« pt56 »,
false,
false
],
[
26.0,
« »,
« pt57 »,
false,
false
],
[
null,
« »,
« pt58 »,
false,
false
],
[
null,
« »,
« pt59 »,
false,
false
],
[
null,
« »,
« pt60 »,
false,
false
],
[
null,
« »,
« pt61 »,
false,
false
],
[
null,
« »,
« pt62 »,
false,
false
],
[
null,
« »,
« pt63 »,
false,
false
],
[
null,
« »,
« pt64 »,
false,
false
],
[
null,
« »,
« pt65 »,
false,
false
],
[
null,
« »,
« pt66 »,
false,
false
],
[
null,
« »,
« pt67 »,
false,
false
],
[
21.0,
« »,
« pt68 »,
false,
false
],
[
null,
« »,
« pt69 »,
true,
false
]
],
« keys »: [
« y »,
« color »,
« id »,
« marker.enabled »,
« dataLabels.enabled »
]
},
{
« stack »: « null »,
« name »: « Xiaomi »,
« lineWidth »: 2,
« color »: « #0B6C89 »,
« type »: « »,
« yAxis »: « 0 »,
« visible »: true,
« dataLabels »: {
« enabled »: false
},
« step »: « »,
« data »: [
[
null,
« »,
« pt70 »,
true,
false
],
[
null,
« »,
« pt71 »,
false,
false
],
[
35.0,
« »,
« pt72 »,
false,
false
],
[
null,
« »,
« pt73 »,
false,
false
],
[
null,
« »,
« pt74 »,
false,
false
],
[
null,
« »,
« pt75 »,
false,
false
],
[
null,
« »,
« pt76 »,
false,
false
],
[
null,
« »,
« pt77 »,
false,
false
],
[
null,
« »,
« pt78 »,
false,
false
],
[
null,
« »,
« pt79 »,
false,
false
],
[
null,
« »,
« pt80 »,
false,
false
],
[
null,
« »,
« pt81 »,
false,
false
],
[
null,
« »,
« pt82 »,
false,
false
],
[
null,
« »,
« pt83 »,
false,
false
],
[
null,
« »,
« pt84 »,
false,
false
],
[
null,
« »,
« pt85 »,
false,
false
],
[
null,
« »,
« pt86 »,
false,
false
],
[
null,
« »,
« pt87 »,
false,
false
],
[
null,
« »,
« pt88 »,
false,
false
],
[
null,
« »,
« pt89 »,
false,
false
],
[
null,
« »,
« pt90 »,
false,
false
],
[
null,
« »,
« pt91 »,
false,
false
],
[
26.0,
« »,
« pt92 »,
false,
false
],
[
null,
« »,
« pt93 »,
false,
false
],
[
null,
« »,
« pt94 »,
false,
false
],
[
null,
« »,
« pt95 »,
false,
false
],
[
null,
« »,
« pt96 »,
false,
false
],
[
null,
« »,
« pt97 »,
false,
false
],
[
null,
« »,
« pt98 »,
false,
false
],
[
null,
« »,
« pt99 »,
false,
false
],
[
null,
« »,
« pt100 »,
false,
false
],
[
null,
« »,
« pt101 »,
false,
false
],
[
24.0,
« »,
« pt102 »,
false,
false
],
[
null,
« »,
« pt103 »,
false,
false
],
[
null,
« »,
« pt104 »,
true,
false
]
],
« keys »: [
« y »,
« color »,
« id »,
« marker.enabled »,
« dataLabels.enabled »
]
},
{
« stack »: « null »,
« name »: « Oppo »,
« lineWidth »: 2,
« color »: « #E82D2D »,
« type »: « »,
« yAxis »: « 0 »,
« visible »: true,
« dataLabels »: {
« enabled »: false
},
« step »: « »,
« data »: [
[
null,
« »,
« pt105 »,
true,
false
],
[
33.0,
« »,
« pt106 »,
false,
false
],
[
null,
« »,
« pt107 »,
false,
false
],
[
null,
« »,
« pt108 »,
false,
false
],
[
null,
« »,
« pt109 »,
false,
false
],
[
null,
« »,
« pt110 »,
false,
false
],
[
null,
« »,
« pt111 »,
false,
false
],
[
null,
« »,
« pt112 »,
false,
false
],
[
null,
« »,
« pt113 »,
false,
false
],
[
null,
« »,
« pt114 »,
false,
false
],
[
null,
« »,
« pt115 »,
false,
false
],
[
null,
« »,
« pt116 »,
false,
false
],
[
null,
« »,
« pt117 »,
false,
false
],
[
null,
« »,
« pt118 »,
false,
false
],
[
null,
« »,
« pt119 »,
false,
false
],
[
null,
« »,
« pt120 »,
false,
false
],
[
null,
« »,
« pt121 »,
false,
false
],
[
32.0,
« »,
« pt122 »,
false,
false
],
[
null,
« »,
« pt123 »,
false,
false
],
[
null,
« »,
« pt124 »,
false,
false
],
[
null,
« »,
« pt125 »,
false,
false
],
[
null,
« »,
« pt126 »,
false,
false
],
[
null,
« »,
« pt127 »,
false,
false
],
[
null,
« »,
« pt128 »,
false,
false
],
[
null,
« »,
« pt129 »,
false,
false
],
[
null,
« »,
« pt130 »,
false,
false
],
[
null,
« »,
« pt131 »,
false,
false
],
[
null,
« »,
« pt132 »,
false,
false
],
[
null,
« »,
« pt133 »,
false,
false
],
[
null,
« »,
« pt134 »,
false,
false
],
[
null,
« »,
« pt135 »,
false,
false
],
[
25.0,
« »,
« pt136 »,
false,
false
],
[
null,
« »,
« pt137 »,
false,
false
],
[
null,
« »,
« pt138 »,
false,
false
],
[
null,
« »,
« pt139 »,
true,
false
]
],
« keys »: [
« y »,
« color »,
« id »,
« marker.enabled »,
« dataLabels.enabled »
]
}
],
« accessibility »: {
« enabled »: true
},
« exporting »: {
« enabled »: false
},
« credits »: {
« enabled »: false
}
} );
});
La tendance est inversée chez Apple : les mobiles milieu de gamme, comme les iPhone SE de 2020 et 2022, décotent plus vite encore que les mobiles Android. Mais les modèles haut de gamme se maintiennent particulièrement bien : l’iPhone de 2022 vaut aujourd’hui encore près de la moitié de son prix neuf de l’époque, celui de 2020 près du tiers.
Cote actuelle des mobiles moyen de gamme en fonction de leur mois et année de sortie
require(['//s1.lemde.fr/assets-redaction/js/grumpycharts/highcharts-6-1-1.js'], function() { Highcharts.setOptions({ lang: { decimalPoint: ',', thousandsSep: ' ', months: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], shortMonths: [ 'jan.' , 'fév.' , 'mars' , 'avr.' , 'mai' , 'juin' , 'juil.' , 'août' , 'sept.' , 'oct.' , 'nov.' , 'déc.'], weekdays: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'], noData: 'Pas de données à afficher', numericSymbols: [null, 'M', 'G', 'T', 'P', 'E'] } }); var chart = new Highcharts.Chart( { "title": { "text": " ", "style": { "color": "transparent" } }, "chart": { "type": "line", "description": "", "backgroundColor": "rgba(255,255,255,0)", "borderRadius": 0, "alignTicks": false, "spacingTop": 30, "spacingBottom": 10, "spacingLeft": 10, "spacingRight": 10, "style": { "fontFamily": "Marr Sans,Helvetica,Arial!important", "fontSize": "13px" }, "renderTo": "d_graph_17314301215" }, "plotOptions": { "series": { "stacking": "", "marker": { "fillColor": "", "enabled": true, "radius": 3, "symbol": "circle", "lineWidth": 2, "lineColor": null, "states": { "hover": { "lineWidth": 2, "lineWidthPlus": 0, "radiusPlus": 1 } } }, "dataLabels": { "style": { "textOutline": "0.25px contrast", "fontSize": "12px", "zIndex": "-1", "letterSpacing": "0.25" }, "useHTML": true }, "connectNulls": true, "fillOpacity": 0.2, "states": { "hover": { "enabled": true, "lineWidth": 0, "lineWidthPlus": 0 } } }, "colorByPoint": false, "line": { "animation": { "duration": 0 } } }, "yAxis": [ { "title": { "text": "" }, "labels": { "format": "{value:,.0f}%", "space": true, "y": -3, "x": 5, "align": "left", "useHTML": true, "zIndex": -1, "step": 1, "style": { "color": "#2A303", "whiteSpace": "nowrap", "fontSize": "12px", "align": "right" }, "formatter": function () { let val_tick = this.value; if (this.chart.yAxis[0].userOptions.labels.space == true) val_tick = val_tick.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ").replace(".", ",") + this.chart.yAxis[0].userOptions.labels.format.replace("{value:,.0f}", " ").replace("{value}", " "); if (this.axis.paddedTicks.indexOf(this.value) % 2 != 0) return val_tick }
},
"min": 0.0,
"startOnTick": true,
"max": 50.0,
"endOnTick": true,
"type": "linear",
"reversed": "",
"plotLines": [
{
"value": "",
"label": {
"text": "",
"align": "left",
"rotation": "0",
"useHTML": false,
"x": 5,
"style": {
"color": "#ccc"
}
},
"color": "#ccc",
"width": "",
"zIndex": 5
}
],
"plotBands": [
{
"from": "",
"to": "",
"label": {
"text": "",
"align": "left",
"verticalAlign": "top",
"rotation": "0",
"useHTML": false,
"textAlign": "",
"x": "",
"y": -5
},
"color": null,
"zIndex": -1
}
],
"offset": 50,
"tickLength": 50,
"tickWidth": 1,
"tickPosition": "inside",
"opposite": false,
"id": "0",
"alignTicks": true,
"showFirstLabel": true,
"lineWidth": 0,
"gridZIndex": -1
}
],
"xAxis": {
"title": {
"text": ""
},
"labels": {
"format": "{value}",
"step": "1",
"formatdt": "%Y",
"space": false,
"useHTML": true,
"zIndex": -1,
"padding": 30,
"autoRotation": [
0,
-40,
-60,
-80
],
"style": {
"color": "#2A303",
"fontSize": "12px"
}
},
"type": "linear",
"plotLines": [
{
"value": "",
"label": {
"text": "",
"textAlign": "left",
"verticalAlign": "top",
"rotation": "90",
"useHTML": false,
"x": 5,
"y": 12,
"style": {
"color": "#ccc"
}
},
"color": "#ccc",
"width": "",
"zIndex": 5
}
],
"plotBands": [
{
"from": "",
"to": "",
"label": {
"text": "",
"align": "left",
"verticalAlign": "top",
"rotation": "90",
"useHTML": false,
"textAlign": "",
"x": "",
"y": 10,
"zIndex": -1
},
"color": null,
"zIndex": -10
}
],
"categories": [
"d 2022",
"n",
"o",
"s",
"a",
"j",
"j",
"m",
"a",
"m",
"f",
"J ",
"d 2021",
"n",
"o",
"s",
"a",
"j",
"j",
"m",
"a",
"m",
"f",
"J ",
"d 2020",
"n",
"o",
"s",
"a",
"j",
"j",
"m",
"a",
"m",
"f"
],
"lineColor": "#2E3942",
"tickLength": 7,
"lineWidth": 1
},
"tooltip": {
"valuePrefix": "",
"valueSuffix": "",
"valueDecimals": "",
"xDateFormat": "",
"style": {
"color": "#16212c",
"font-family": "'Marr Sans',Helvetica,Arial!important",
"opacity": 1
},
"shared": "",
"title": "{{Apple}}{{Samsung}}{{Xiaomi}}{{Oppo}}",
"content": "",
"annot": "",
"strColumns": [
[
"Ann\u00e9e",
"d 2022",
"n",
"o",
"s",
"a",
"j",
"j",
"m",
"a",
"m",
"f",
"J ",
"d 2021",
"n",
"o",
"s",
"a",
"j",
"j",
"m",
"a",
"m",
"f",
"J ",
"d 2020",
"n",
"o",
"s",
"a",
"j",
"j",
"m",
"a",
"m",
"f"
],
[
"Apple",
"",
"",
"",
"",
"",
"",
"",
34.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
26.0,
"",
""
],
[
"Samsung",
"",
"",
"",
"",
"",
"",
"",
"",
"",
41.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
40.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
31.0,
"",
""
],
[
"Xiaomi",
"",
"",
"",
"",
"",
37.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
33.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
31.0,
"",
"",
"",
"",
""
],
[
"Oppo",
"",
"",
"",
"",
"",
"",
39.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
32.0,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
30.0,
"",
"",
"",
"",
""
]
],
"useHTML": true,
"backgroundColor": "rgba(255,255,255,1)",
"borderColor": "#E2E4E9",
"borderRadius": 0,
"borderWidth": 1,
"shadow": false,
"hideDelay": 200,
"headerFormat": "{point.key}
",
"pointFormat": "\u25cf {series.name} : {point.y}
",
"formatter": function(tooltip) {
function addSpace(nStr) { if (!isNaN(nStr)) { nStr = String(nStr); nStr = nStr.replace(".", ","); nStr = nStr.split(","); if (nStr[0].length > 4) { let x = nStr[0].split('.'); let x1 = x[0]; let x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) x1 = x1.replace(rgx, '$1' + ' ' + '$2'); nStr[0] = x1+x2; } return nStr; } else if (nStr.indexOf("https://www.lemonde.fr/") >= 0) { nStr = nStr.split("https://www.lemonde.fr/"); return (addSpace(nStr[0]) + " - " + addSpace(nStr[1])) } else if (nStr.length > 1) return (addSpace(nStr[0]) + " - " + addSpace(nStr[1])) else return nStr }
function matchInArray(exp, skeleton, index, shared){ let chrono = 0; if (skeleton.chart.type != "pie" && skeleton.xAxis.type != "linear") chrono = 1; while (exp.indexOf("{{current}}") != -1 && shared != 1) { shared[0] = addSpace(shared[0]); if (skeleton.tooltip.valuePrefix != "") skeleton.tooltip.valuePrefix += " "; var string_current = "● " + shared[1] + " : " + skeleton.tooltip.valuePrefix + shared[0] + skeleton.tooltip.valueSuffix; var new_exp_current = exp.replace("{{current}}", string_current); exp = new_exp_current }
while (exp.indexOf("{{current}}") != -1 && shared == 1) {
var string_current = "";
if (skeleton.tooltip.valuePrefix != "") {
for (var i = 0; i < skeleton.series.length; i++) {
if (skeleton.series[i].data[index][1])
string_current = string_current + "● " + skeleton.series[i].name + " : " + skeleton.tooltip.valuePrefix + addSpace(skeleton.series[i].data[index][0 + chrono]) + skeleton.tooltip.valueSuffix + "
";
}
}
else {
for (var i = 0; i < skeleton.series.length; i++){
if (skeleton.series[i].data[index][1])
string_current = string_current + "● " + skeleton.series[i].name + " : " + addSpace(skeleton.series[i].data[index][0 + chrono]) + " " + skeleton.tooltip.valueSuffix + "
";
}
}
var new_exp_current = exp.replace("{{current}}", string_current);
exp = new_exp_current;
}
for (var i = 0; i < skeleton.tooltip.strColumns.length; i++){
var stringSearch="{{" + skeleton.tooltip.strColumns[i][0] + '}}';
while (exp.indexOf(stringSearch) != -1) {
exp_replace = skeleton.tooltip.strColumns[i][index + 1];
if (chrono == 1 && i == 0){
var format = skeleton.tooltip.xDateFormat != '' ? skeleton.tooltip.xDateFormat : skeleton.xAxis.labels.format.replace("{value:", "").replace("}", "");
exp_replace = Highcharts.dateFormat(format, new Date(String(exp_replace)))
}
var new_exp = exp.replace(stringSearch, exp_replace);
exp = new_exp;
}
}
return exp;
}
var str_tooltip = "";
var index = this.series.xData.indexOf(this.point.x);
if (this.series.yData[index][0])
var yData = String(this.series.yData[index][0]) + "https://www.lemonde.fr/" + String(this.series.yData[index][1]);
else
var yData = this.series.yData[index];
if (tooltip.chart.userOptions.tooltip.title && this.series.yData[index])
str_tooltip = str_tooltip + "" + matchInArray(tooltip.chart.userOptions.tooltip.title, tooltip.chart.userOptions, index, [yData, this.series.name, this.series.color]) + '';
else if (tooltip.chart.userOptions.tooltip.title && this.series.valueData[index])
str_tooltip = str_tooltip + "" + matchInArray(tooltip.chart.userOptions.tooltip.title, tooltip.chart.userOptions, index, [this.series.valueData[index], this.series.points[index].name, this.series.points[index].color]) + '';
else if (!tooltip.chart.userOptions.tooltip.title && tooltip.chart.userOptions.chart.type == "pie")
str_tooltip = str_tooltip + "" + tooltip.chart.userOptions.series[0].data[index].name + '';
else if (tooltip.chart.userOptions.chart.type != "treemap")
str_tooltip = str_tooltip + "" + tooltip.chart.userOptions.tooltip.strColumns[0][index + 1] + '';
if (tooltip.chart.userOptions.tooltip.content && this.series.yData[index])
str_tooltip = str_tooltip + '
' + matchInArray(tooltip.chart.userOptions.tooltip.content, tooltip.chart.userOptions, index, [this.series.yData[index], this.series.name, this.series.color]);
else if (tooltip.chart.userOptions.tooltip.content && this.series.valueData[index]) {
str_tooltip = str_tooltip + '
' + matchInArray(tooltip.chart.userOptions.tooltip.content, tooltip.chart.userOptions, index, [this.series.valueData[index], this.series.points[index].name, this.series.points[index].color]);
}
return ("
' + tooltip.chart.userOptions.tooltip.annot + "
« )}
},
« legend »: {
« enabled »: « 1 »,
« reversed »: « »,
« layout »: « horizontal »,
« verticalAlign »: « top »,
« align »: « left »,
« margin »: 40,
« y »: -30,
« x »: 0,
« itemStyle »: {
« fontSize »: 13,
« font-family »: « ‘Marr Sans’,Helvetica,arial »,
« fontWeight »: « normal »,
« color »: « #2A303B »
},
« itemMarginBottom »: 10
},
« dark »: false,
« series »: [
{
« stack »: « null »,
« name »: « Apple »,
« lineWidth »: 2,
« color »: « #D2AD5C »,
« type »: « »,
« yAxis »: « 0 »,
« visible »: true,
« dataLabels »: {
« enabled »: false
},
« step »: « »,
« data »: [
[
null,
« »,
« pt0 »,
true,
false
],
[
null,
« »,
« pt1 »,
false,
false
],
[
null,
« »,
« pt2 »,
false,
false
],
[
null,
« »,
« pt3 »,
false,
false
],
[
null,
« »,
« pt4 »,
false,
false
],
[
null,
« »,
« pt5 »,
false,
false
],
[
null,
« »,
« pt6 »,
false,
false
],
[
34.0,
« »,
« pt7 »,
false,
false
],
[
null,
« »,
« pt8 »,
false,
false
],
[
null,
« »,
« pt9 »,
false,
false
],
[
null,
« »,
« pt10 »,
false,
false
],
[
null,
« »,
« pt11 »,
false,
false
],
[
null,
« »,
« pt12 »,
false,
false
],
[
null,
« »,
« pt13 »,
false,
false
],
[
null,
« »,
« pt14 »,
false,
false
],
[
null,
« »,
« pt15 »,
false,
false
],
[
null,
« »,
« pt16 »,
false,
false
],
[
null,
« »,
« pt17 »,
false,
false
],
[
null,
« »,
« pt18 »,
false,
false
],
[
null,
« »,
« pt19 »,
false,
false
],
[
null,
« »,
« pt20 »,
false,
false
],
[
null,
« »,
« pt21 »,
false,
false
],
[
null,
« »,
« pt22 »,
false,
false
],
[
null,
« »,
« pt23 »,
false,
false
],
[
null,
« »,
« pt24 »,
false,
false
],
[
null,
« »,
« pt25 »,
false,
false
],
[
null,
« »,
« pt26 »,
false,
false
],
[
null,
« »,
« pt27 »,
false,
false
],
[
null,
« »,
« pt28 »,
false,
false
],
[
null,
« »,
« pt29 »,
false,
false
],
[
null,
« »,
« pt30 »,
false,
false
],
[
null,
« »,
« pt31 »,
false,
false
],
[
26.0,
« »,
« pt32 »,
false,
false
],
[
null,
« »,
« pt33 »,
false,
false
],
[
null,
« »,
« pt34 »,
true,
false
]
],
« keys »: [
« y »,
« color »,
« id »,
« marker.enabled »,
« dataLabels.enabled »
]
},
{
« stack »: « null »,
« name »: « Samsung »,
« lineWidth »: 2,
« color »: « #A2DCE7 »,
« type »: « »,
« yAxis »: « 0 »,
« visible »: true,
« dataLabels »: {
« enabled »: false
},
« step »: « »,
« data »: [
[
null,
« »,
« pt35 »,
true,
false
],
[
null,
« »,
« pt36 »,
false,
false
],
[
null,
« »,
« pt37 »,
false,
false
],
[
null,
« »,
« pt38 »,
false,
false
],
[
null,
« »,
« pt39 »,
false,
false
],
[
null,
« »,
« pt40 »,
false,
false
],
[
null,
« »,
« pt41 »,
false,
false
],
[
null,
« »,
« pt42 »,
false,
false
],
[
null,
« »,
« pt43 »,
false,
false
],
[
41.0,
« »,
« pt44 »,
false,
false
],
[
null,
« »,
« pt45 »,
false,
false
],
[
null,
« »,
« pt46 »,
false,
false
],
[
null,
« »,
« pt47 »,
false,
false
],
[
null,
« »,
« pt48 »,
false,
false
],
[
null,
« »,
« pt49 »,
false,
false
],
[
null,
« »,
« pt50 »,
false,
false
],
[
null,
« »,
« pt51 »,
false,
false
],
[
null,
« »,
« pt52 »,
false,
false
],
[
null,
« »,
« pt53 »,
false,
false
],
[
null,
« »,
« pt54 »,
false,
false
],
[
null,
« »,
« pt55 »,
false,
false
],
[
40.0,
« »,
« pt56 »,
false,
false
],
[
null,
« »,
« pt57 »,
false,
false
],
[
null,
« »,
« pt58 »,
false,
false
],
[
null,
« »,
« pt59 »,
false,
false
],
[
null,
« »,
« pt60 »,
false,
false
],
[
null,
« »,
« pt61 »,
false,
false
],
[
null,
« »,
« pt62 »,
false,
false
],
[
null,
« »,
« pt63 »,
false,
false
],
[
null,
« »,
« pt64 »,
false,
false
],
[
null,
« »,
« pt65 »,
false,
false
],
[
null,
« »,
« pt66 »,
false,
false
],
[
31.0,
« »,
« pt67 »,
false,
false
],
[
null,
« »,
« pt68 »,
false,
false
],
[
null,
« »,
« pt69 »,
true,
false
]
],
« keys »: [
« y »,
« color »,
« id »,
« marker.enabled »,
« dataLabels.enabled »
]
},
{
« stack »: « null »,
« name »: « Xiaomi »,
« lineWidth »: 2,
« color »: « #0B6C89 »,
« type »: « »,
« yAxis »: « 0 »,
« visible »: true,
« dataLabels »: {
« enabled »: false
},
« step »: « »,
« data »: [
[
null,
« »,
« pt70 »,
true,
false
],
[
null,
« »,
« pt71 »,
false,
false
],
[
null,
« »,
« pt72 »,
false,
false
],
[
null,
« »,
« pt73 »,
false,
false
],
[
null,
« »,
« pt74 »,
false,
false
],
[
37.0,
« »,
« pt75 »,
false,
false
],
[
null,
« »,
« pt76 »,
false,
false
],
[
null,
« »,
« pt77 »,
false,
false
],
[
null,
« »,
« pt78 »,
false,
false
],
[
null,
« »,
« pt79 »,
false,
false
],
[
null,
« »,
« pt80 »,
false,
false
],
[
null,
« »,
« pt81 »,
false,
false
],
[
null,
« »,
« pt82 »,
false,
false
],
[
null,
« »,
« pt83 »,
false,
false
],
[
null,
« »,
« pt84 »,
false,
false
],
[
null,
« »,
« pt85 »,
false,
false
],
[
null,
« »,
« pt86 »,
false,
false
],
[
null,
« »,
« pt87 »,
false,
false
],
[
null,
« »,
« pt88 »,
false,
false
],
[
33.0,
« »,
« pt89 »,
false,
false
],
[
null,
« »,
« pt90 »,
false,
false
],
[
null,
« »,
« pt91 »,
false,
false
],
[
null,
« »,
« pt92 »,
false,
false
],
[
null,
« »,
« pt93 »,
false,
false
],
[
null,
« »,
« pt94 »,
false,
false
],
[
null,
« »,
« pt95 »,
false,
false
],
[
null,
« »,
« pt96 »,
false,
false
],
[
null,
« »,
« pt97 »,
false,
false
],
[
null,
« »,
« pt98 »,
false,
false
],
[
31.0,
« »,
« pt99 »,
false,
false
],
[
null,
« »,
« pt100 »,
false,
false
],
[
null,
« »,
« pt101 »,
false,
false
],
[
null,
« »,
« pt102 »,
false,
false
],
[
null,
« »,
« pt103 »,
false,
false
],
[
null,
« »,
« pt104 »,
true,
false
]
],
« keys »: [
« y »,
« color »,
« id »,
« marker.enabled »,
« dataLabels.enabled »
]
},
{
« stack »: « null »,
« name »: « Oppo »,
« lineWidth »: 2,
« color »: « #E82D2D »,
« type »: « »,
« yAxis »: « 0 »,
« visible »: true,
« dataLabels »: {
« enabled »: false
},
« step »: « »,
« data »: [
[
null,
« »,
« pt105 »,
true,
false
],
[
null,
« »,
« pt106 »,
false,
false
],
[
null,
« »,
« pt107 »,
false,
false
],
[
null,
« »,
« pt108 »,
false,
false
],
[
null,
« »,
« pt109 »,
false,
false
],
[
null,
« »,
« pt110 »,
false,
false
],
[
39.0,
« »,
« pt111 »,
false,
false
],
[
null,
« »,
« pt112 »,
false,
false
],
[
null,
« »,
« pt113 »,
false,
false
],
[
null,
« »,
« pt114 »,
false,
false
],
[
null,
« »,
« pt115 »,
false,
false
],
[
null,
« »,
« pt116 »,
false,
false
],
[
null,
« »,
« pt117 »,
false,
false
],
[
null,
« »,
« pt118 »,
false,
false
],
[
null,
« »,
« pt119 »,
false,
false
],
[
null,
« »,
« pt120 »,
false,
false
],
[
null,
« »,
« pt121 »,
false,
false
],
[
null,
« »,
« pt122 »,
false,
false
],
[
32.0,
« »,
« pt123 »,
false,
false
],
[
null,
« »,
« pt124 »,
false,
false
],
[
null,
« »,
« pt125 »,
false,
false
],
[
null,
« »,
« pt126 »,
false,
false
],
[
null,
« »,
« pt127 »,
false,
false
],
[
null,
« »,
« pt128 »,
false,
false
],
[
null,
« »,
« pt129 »,
false,
false
],
[
null,
« »,
« pt130 »,
false,
false
],
[
null,
« »,
« pt131 »,
false,
false
],
[
null,
« »,
« pt132 »,
false,
false
],
[
null,
« »,
« pt133 »,
false,
false
],
[
30.0,
« »,
« pt134 »,
false,
false
],
[
null,
« »,
« pt135 »,
false,
false
],
[
null,
« »,
« pt136 »,
false,
false
],
[
null,
« »,
« pt137 »,
false,
false
],
[
null,
« »,
« pt138 »,
false,
false
],
[
null,
« »,
« pt139 »,
true,
false
]
],
« keys »: [
« y »,
« color »,
« id »,
« marker.enabled »,
« dataLabels.enabled »
]
}
],
« accessibility »: {
« enabled »: true
},
« exporting »: {
« enabled »: false
},
« credits »: {
« enabled »: false
}
} );
});
Quelles leçons en tirer ? Les consommateurs cherchant un mobile d’occasion le moins cher possible s’intéresseront prioritairement au milieu de gamme d’Apple – le SE de 2020 ne vaut plus que 125 euros environ et devrait encore bénéficier de près de deux années de mises à jour logicielles. Ceux qui cherchent un haut de gamme se pencheront sur le millésime 2021 des smartphones Android, qui a beaucoup décoté, en ciblant prioritairement Samsung, qui met ses mobiles à jour plus longtemps. On trouve les excellents Galaxy S21 et S21+ respectivement aux alentours de 220 euros et 280 euros.
Pour les consommateurs tenant absolument à acheter des mobiles neufs, dans le haut de gamme, les iPhone ont de bonnes chances de conserver une cote supérieure. Et dans le milieu de gamme, il est probable que les mobiles Samsung se maintiennent mieux que ceux des autres marques Android. A ce niveau tarifaire en revanche, le vieillissant iPhone SE de 2022 est à proscrire absolument. Quant au bas de gamme, rappelons-le, c’est un mauvais choix lorsque l’on veut faire durer un mobile.
Il vous reste 19.67% de cet article à lire. La suite est réservée aux abonnés.
[ad_2]
Source link