17 marcas, 113 teléfonos móviles 5G, 5G se acerca cada vez más a nosotros

Autor | Little F

Fuente | Farnast (ID: walker398)

Imagen de la cabeza | Descarga de CSDN de Oriental IC

El iPhone 12 fue lanzado hace unos días y Apple finalmente lanzó su primer teléfono móvil 5G.

El precio más bajo fue de 5499 yuanes, y el pobrecito F decidió darse por vencido , jaja ~

"The Paper Art Class" también publicó un tweet sobre teléfonos móviles 5G.

Se visualiza los datos relacionados, tales como 5G precios de los teléfonos móviles y chips , velocidades de descarga 5G , y las ciudades de la red 5G .

El análisis también es muy razonable, por lo que este problema utilizará sus datos para reproducirlo.

Los tres tipos de gráficos, pictogramas , gráficos de barras y mapas se implementan con Pyecharts.

Después de un año, Little F lo volvió a encontrar.

La versión 0.5 se usó antes y la última versión de Pyecharts es 1.8.1.

Determine la última versión y comience el viaje de roer documentos nuevamente ~

Comparación de precios de varias marcas de teléfonos móviles 5G

Hay un total de 17 marcas, de las cuales realme es una marca emergente de teléfonos móviles, establecida recién en 2018.

Y el precio de un teléfono móvil 5G que produjo fue tan bajo como 1,000 yuanes .

La máquina de la experiencia 5G, me temo que no la conseguiré ~

from pyecharts.charts import PictorialBar
from pyecharts import options as opts


# 品牌名称
label = ['华硕', '联想', '摩托罗拉', '魅族', '黑鲨', '努比亚', '中兴', '一加', '小米', 'IQOO', '红米', '三星', 'realme', 'OPPO', '荣耀', 'vivo', '华为']




def pic_bar_price(values, label):
    """
    5G手机价位比较
    """
    # 初始化,设置图表大小
    pictorialbar = PictorialBar(init_opts=opts.InitOpts(width='480px', height='700px'))
    # x轴标签信息
    pictorialbar.add_xaxis(label)
    # 添加象形图
    pictorialbar.add_yaxis("",
        values[0],
        symbol_size=18,
        symbol_repeat='20',
        symbol_offset=[0,0],
        is_symbol_clip=True,
        symbol='rect',
        color='#FCA46A',
        gap='-100%',
        symbol_margin=10,
        label_opts=opts.LabelOpts(is_show=False)
    )
    pictorialbar.add_yaxis("5000元及以上",
        values[1],
        symbol_size=18,
        label_opts=opts.LabelOpts(is_show=False),
        symbol_repeat='20',
        symbol_offset=[0, 0],
        is_symbol_clip=True,
        symbol='rect',
        color='#F95DBA',
        gap='-100%',
        symbol_margin=10
    )
    pictorialbar.add_yaxis("3000-4999元",
        values[2],
        label_opts=opts.LabelOpts(is_show=False),
        symbol_size=18,
        symbol_repeat='20',
        symbol_offset=[0, 0],
        is_symbol_clip=True,
        symbol='rect',
        color='#4E70F0',
        gap='-100%',
        symbol_margin=10
    )
    pictorialbar.add_yaxis("1000-2999元",
        values[3],
        yaxis_index=0,
        label_opts=opts.LabelOpts(is_show=False),
        symbol_size=18,
        symbol_repeat='20',
        symbol_offset=[0, 0],
        is_symbol_clip=True,
        symbol='rect',
        color='#1720D1',
        gap='-100%',
        symbol_margin=10
    )
    pictorialbar.add_yaxis("999元及以下",
        values[4],
        yaxis_index=0,
        label_opts=opts.LabelOpts(is_show=False),
        symbol_size=18,
        symbol_repeat='20',
        symbol_offset=[0, 0],
        is_symbol_clip=True,
        symbol='rect',
        color='white',
        gap='-100%',
        symbol_margin=10
    )
    pictorialbar.set_global_opts(
        # 隐藏x坐标轴
        xaxis_opts=opts.AxisOpts(is_show=False),
        # 显示y坐标轴,隐藏刻度线
        yaxis_opts=opts.AxisOpts(is_show=True, axistick_opts=opts.AxisTickOpts(is_show=False)),
        # 显示图例,设置图例位置
        legend_opts=opts.LegendOpts(pos_bottom='9%', pos_right='10%', orient='vertical', item_width=18, item_height=18),
        # 添加标题,设置标题位置
        title_opts=opts.TitleOpts(title='各品牌5G手机价位比较', pos_left='center', pos_top='2%')
    )
    pictorialbar.reversal_axis()
    pictorialbar.render('各品牌5G手机价位比较.html')




values = [
    [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100],
    [5, 10, 10, 15, 15, 15, 15, 15, 35, 35, 40, 45, 45, 50, 60, 65, 85],
    [0, 10, 5, 15, 15, 15, 15, 10, 25, 35, 40, 10, 45, 40, 60, 50, 55],
    [0, 0, 0, 0, 0, 5, 15, 5, 5, 15, 35, 10, 30, 25, 45, 30, 35],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0]
]
pic_bar_price(values, label)

Utilice PictorialBar ( histograma pictórico ) de Pyecharts para expresar la cantidad a través de gráficos.

En comparación con el gráfico de la clase de arte emergente, la posición del arreglo es un poco diferente y las otras no son muy diferentes.

Uno de los cuadrados representa 1 cantidad, lo que significa que existen 12 modelos de teléfonos móviles 5G de la marca Honor, y uno de ellos es utilizado por el pequeño F ~

Se puede ver que 1000-2999 yuanes (rosa) y 3000 yuanes y más (azul) se dividen por igual.

El teléfono móvil de Realme con un precio de 998 yuanes también es excepcional.

Chips de teléfonos móviles, principalmente Snapdragon , MediaTek Dimensity , Kirin , Samsung Exynos .

from pyecharts.charts import PictorialBar
from pyecharts import options as opts


# 品牌名称
label = ['华硕', '联想', '摩托罗拉', '魅族', '黑鲨', '努比亚', '中兴', '一加', '小米', 'IQOO', '红米', '三星', 'realme', 'OPPO', '荣耀', 'vivo', '华为']




def pic_bar_microchip(values, label):
    pictorialbar=PictorialBar(init_opts=opts.InitOpts(width='480px', height='700px'))
    pictorialbar.add_xaxis(label)
    pictorialbar.add_yaxis("",
        values[0],
        symbol_size=18,
        symbol_repeat='20',
        symbol_offset=[0,0],
        is_symbol_clip=True,
        symbol='rect',
        color='#F95DBA',
        gap='-100%',
        symbol_margin=10,
        label_opts=opts.LabelOpts(is_show=False)
    )
    pictorialbar.add_yaxis("高通骁龙",
        values[1],
        symbol_size=18,
        label_opts=opts.LabelOpts(is_show=False),
        symbol_repeat='20',
        symbol_offset=[0, 0],
        is_symbol_clip=True,
        symbol='rect',
        color='#FFCE2B',
        gap='-100%',
        symbol_margin=10
    )
    pictorialbar.add_yaxis("联发科天玑/MT",
        values[2],
        label_opts=opts.LabelOpts(is_show=False),
        symbol_size=18,
        symbol_repeat='20',
        symbol_offset=[0, 0],
        is_symbol_clip=True,
        symbol='rect',
        color='#009688',
        gap='-100%',
        symbol_margin=10
    )
    pictorialbar.add_yaxis("华为麒麟",
        values[3],
        yaxis_index=0,
        label_opts=opts.LabelOpts(is_show=False),
        symbol_size=18,
        symbol_repeat='20',
        symbol_offset=[0, 0],
        is_symbol_clip=True,
        symbol='rect',
        color='#1720D1',
        gap='-100%',
        symbol_margin=10
    )
    pictorialbar.add_yaxis("三星Exynos",
        values[4],
        yaxis_index=0,
        label_opts=opts.LabelOpts(is_show=False),
        symbol_size=18,
        symbol_repeat='20',
        symbol_offset=[0, 0],
        is_symbol_clip=True,
        symbol='rect',
        color='white',
        gap='-100%',
        symbol_margin=10
    )
    pictorialbar.set_global_opts(
        xaxis_opts=opts.AxisOpts(is_show=False),
        yaxis_opts=opts.AxisOpts(is_show=True, axistick_opts=opts.AxisTickOpts(is_show=False)),
        legend_opts=opts.LegendOpts(pos_bottom='9%', pos_right='10%', orient='vertical', item_width=18, item_height=18),
        title_opts=opts.TitleOpts(title='各品牌5G手机芯片比较', pos_left='center', pos_top='2%')
    )
    pictorialbar.reversal_axis()
    pictorialbar.render('各品牌5G手机芯片比较.html')




values = [
    [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100],
    [5, 10, 10, 15, 15, 15, 15, 15, 35, 35, 40, 45, 45, 50, 60, 65, 85],
    [0, 0, 0, 0, 0, 0, 5, 0, 0, 5, 15, 5, 20, 15, 60, 30, 85],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 45, 25, 60],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 25, 0]
]
pic_bar_microchip(values, label)

Snapdragon ocupa la mayor parte del mercado de teléfonos móviles 5G , y Kirin y MediaTek están a la par.

En mayo de este año, Estados Unidos promulgó una prohibición de chips completamente mejorada en Huawei, y la situación actual de Kirin es muy difícil.

Espero que Huawei pueda aguantar. Desde la escuela hasta ahora, Xiao F compró teléfonos móviles para él o en casa, todos los cuales son marcas de Huawei, un polen adecuado ~

Comparación de velocidades 5G / 4G de los tres principales operadores

En comparación con 4G, 5G tiene la ventaja de que la velocidad se vuelve más rápida .

Este video de divulgación científica 5G que fue difundido en toda la red por "Student He" el año pasado también puede comprender una o dos cosas.

En la impresión de Xiao F, la velocidad de descarga de la aplicación es de aproximadamente 80-90 Mbps.

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode


c = (
    Bar()
    # 添加类目轴文本标签
    .add_xaxis(['中 国\n联 通', '中 国\n电 信', '中 国\n移 动'])
    # 添加数值轴,label显示及偏移,颜色渐变,定义不同类型间距(最新版本pyecharts1.8.1)
    .add_yaxis("4G", [22.84, 25.29, 26.6], itemstyle_opts=JsCode('ItemStyleOpts_4G'), label_opts=opts.LabelOpts(is_show=True, formatter=JsCode('label_4G'), position='insideRight', color='black', font_weight='bolder', distance=0, font_size=14), category_gap='70%', gap='20%')
    .add_yaxis("5G", [160.04, 168.39, 284.37], itemstyle_opts=JsCode('ItemStyleOpts_5G'), label_opts=opts.LabelOpts(is_show=True, formatter=JsCode('label_5G'), position='insideRight', color='black', font_weight='bolder', distance=0, font_size=14), category_gap='70%', gap='20%')
    # x/y轴互换位置
    .reversal_axis()
    .set_global_opts(
        # 标题设置
        title_opts=opts.TitleOpts(title='三大运营商的5G/4G速度对比', subtitle='下载网速对比(单位:Mbps)', pos_left='center', pos_top='-1%', item_gap=3),
        # 隐藏图例
        legend_opts=opts.LegendOpts(is_show=False),
        # x轴属性设置,隐藏刻度线和坐标轴,设置分割线(虚线)
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(is_show=True, position='10%'),
                                 position='top',
                                 axistick_opts=opts.AxisTickOpts(is_show=False),
                                 axisline_opts=opts.AxisLineOpts(is_show=False),
                                 splitline_opts=opts.SplitLineOpts(is_show=True, linestyle_opts=opts.LineStyleOpts(width=1, opacity=0.5, type_='dotted', color='grey'))
        ),
        # y轴属性设置,隐藏刻度线
        yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(is_show=True, font_size=15, font_weight='normal'), axistick_opts=opts.AxisTickOpts(is_show=False)),


    )
    # 添加标签函数及颜色函数
    .add_js_funcs(
        """
        const label_4G = function(arg) {
            console.log(arg)
            if (arg.data === 26.6) {
                return '4G▐'
            }
            else {
                return '▐'
            }
        }


        const label_5G = function(arg) {
            //console.log(arg)
            if (arg.data === 284.37) {
                return '5G▐'
            }
            else {
                return '▐'
            }
        }


        const ItemStyleOpts_4G = {'color': function(arg) {
            return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
                {
                    offset: 0.01,
                    color: "black",
                },
                {
                    offset: 0.018,
                    color: "white",
                },
                {
                    offset: 1,
                    color: '#F7A1AC',
                }
            ])
        }}


        const ItemStyleOpts_5G = {'color': function(arg) {
            return new echarts.graphic.LinearGradient(0, 0, 1, 0, [
                {
                    offset: 0.001,
                    color: "black",
                },
                {
                    offset: 0.003,
                    color: "white",
                },
                {
                    offset: 1,
                    color: '#4E70F0',
                }
            ])
        }}
        """
    )
    .render("三大运营商的速度对比.html")
)

Aquí , la función JS nativa se pasa a través de la función add_js_funcs de Pyecharts .

De esta manera, puede personalizar la información del texto de la etiqueta y agregar colores degradados al histograma .

Modifique los datos del eje Y para obtener el gráfico de comparación de velocidad de carga.

Se puede ver que la velocidad de descarga de 5G es casi 10 veces mayor que la de 4G .

Pero, de nuevo, 5G es bueno, pero el paquete es demasiado caro.

Hace unos días, Telecom también envió mensajes de texto, invitando a Xiao F a actualizarse a 5G.

Eche un vistazo a la situación específica del paquete 5G.

No hay banda ancha a 129 yuanes y el tráfico es de solo 30G.

Para velocidades de descarga como 5G, ¡siento que el tráfico no es suficiente!

Ciudad de la red comercial 5G

Esta lista se anunció el año pasado, con los tres principales operadores que cubren 55 ciudades.

La lista de ciudades comerciales 5G de los principales operadores es la siguiente.

# 电信5G商用城市名单
Telecom = '北京、天津、上海、重庆、石家庄、保定、太原、晋城、呼和浩特、沈阳、大连、长春、哈尔滨、南京、无锡、苏州、杭州、宁波、温州、嘉兴、合肥、芜湖、福州、厦门、泉州、南昌、鹰潭、济南、青岛、郑州、南阳、武汉、长沙、株洲、广州、深圳、佛山、东莞、南宁、柳州、海口、琼海、成都、贵阳、昆明、西安、兰州、西宁、银川、乌鲁木齐'


# 移动5G商用城市名单
Mobile = '北京、天津、上海、重庆、石家庄、保定、太原、晋城、呼和浩特、沈阳、大连、长春、哈尔滨、南京、无锡、苏州、杭州、宁波、温州、嘉兴、合肥、芜湖、福州、厦门、泉州、南昌、鹰潭、济南、青岛、郑州、南阳、武汉、长沙、株洲、广州、深圳、佛山、东莞、柳州、南宁、海口、琼海、成都、贵阳、昆明、西安、兰州、西宁、银川、乌鲁木齐、'


# 移动5G商用城市名单
Unicom = '北京、上海、广州、深圳、杭州、南京、天津、武汉、济南、郑州、苏州、青岛、重庆、成都、宁波、温州、嘉兴、绍兴、东莞、佛山、中山、珠海、无锡、常州、南通、沈阳、长沙、大连、兰州、福州、石家庄、太原、西宁、西安、厦门、贵阳、保定、呼和浩特、南宁、海口、哈尔滨、南昌、合肥、银川、昆明、长春、泉州、柳州、鹰潭、乌鲁木齐、'

La ciudad natal de Little F no está en la lista, pero su lugar de trabajo está en la lista.

Encienda el interruptor 5G del teléfono móvil, hay una señal 5G, pero el paquete 5G no está activado y es inútil ~

from pyecharts.commons.utils import JsCode
from pyecharts import options as opts
from pyecharts.charts import Geo
from collections import Counter


# 电信5G商用城市名单
Telecom = '北京、天津、上海、重庆、石家庄、保定、太原、晋城、呼和浩特、沈阳、大连、长春、哈尔滨、南京、无锡、苏州、杭州、宁波、温州、嘉兴、合肥、芜湖、福州、厦门、泉州、南昌、鹰潭、济南、青岛、郑州、南阳、武汉、长沙、株洲、广州、深圳、佛山、东莞、南宁、柳州、海口、琼海、成都、贵阳、昆明、西安、兰州、西宁、银川、乌鲁木齐'
# 移动5G商用城市名单
Mobile = '北京、天津、上海、重庆、石家庄、保定、太原、晋城、呼和浩特、沈阳、大连、长春、哈尔滨、南京、无锡、苏州、杭州、宁波、温州、嘉兴、合肥、芜湖、福州、厦门、泉州、南昌、鹰潭、济南、青岛、郑州、南阳、武汉、长沙、株洲、广州、深圳、佛山、东莞、柳州、南宁、海口、琼海、成都、贵阳、昆明、西安、兰州、西宁、银川、乌鲁木齐、'
# 移动5G商用城市名单
Unicom = '北京、上海、广州、深圳、杭州、南京、天津、武汉、济南、郑州、苏州、青岛、重庆、成都、宁波、温州、嘉兴、绍兴、东莞、佛山、中山、珠海、无锡、常州、南通、沈阳、长沙、大连、兰州、福州、石家庄、太原、西宁、西安、厦门、贵阳、保定、呼和浩特、南宁、海口、哈尔滨、南昌、合肥、银川、昆明、长春、泉州、柳州、鹰潭、乌鲁木齐、'


# 处理数据,拼接-分割
mStr = Mobile + Unicom + Telecom
mStr = mStr.split("、")


# 城市计数
citys = []
counts = Counter(mStr)
for i, j in zip(counts, counts.values()):
    citys.append((i, j))
print(citys)


# 生成地图
c = (
    Geo()
    .add_schema(maptype="china")
    .add("geo", citys, symbol_size=6)
    .set_series_opts(
        # 自定义标签(显示)
        label_opts=opts.LabelOpts(
            formatter=JsCode(
                """
                function(x){
                    console.log(x);
                    if (['福州', '乌鲁木齐', '呼和浩特', '银川', '西宁', '兰州', '成都', '贵阳', '昆明', '南宁', '海口', '长沙', '南昌', '武汉', '合肥', '郑州', '济南', '太原', '石家庄', '天津', '北京', '大连', '沈阳', '长春', '哈尔滨'].indexOf(x.data.name) > -1) {
                        return x.data.name
                    }
                    else {
                        return ''
                    }
                }
                """
            ),
            color='black'
        )
    )
    .set_global_opts(
        # 视觉映射配置,分段型
        visualmap_opts=opts.VisualMapOpts(is_show=True, is_piecewise=True, pieces=[{"value": 1, "color": '#F95DBA', "label": '1个运营商支持', "symbol": 'circle', "symbolSize": 6}, {"value": 2, "color": '#A64DFF', "label": '2个运营商支持', "symbol": 'circle', "symbolSize": 6}, {"value": 3, "color": '#4E70F0', "label": '3个运营商支持', "symbol": 'circle', "symbolSize": 6}], pos_left='22%', pos_bottom='7%'),
        # 图表标题及副标题
        title_opts=opts.TitleOpts(title="目前提供5G商用网络的城市", subtitle='数据来源:电信、移动、联通官方发布', pos_left='center', pos_top='-1%', item_gap=5),
        # 隐藏图例
        legend_opts=opts.LegendOpts(is_show=False),
        # 添加多个文本
        graphic_opts=[
            opts.GraphicGroup(
                graphic_item=opts.GraphicItem(left='68%', top='52%', z=99),
                children=[
                    opts.GraphicText(
                        graphic_item=opts.GraphicItem(left='68%', top='52%', z=100),
                        graphic_textstyle_opts=opts.GraphicTextStyleOpts(
                            text='江浙沪共10\n个城市拥有\n商用5G网络',
                            font='bolder 14px Microsoft YaHei',
                            graphic_basicstyle_opts=opts.GraphicBasicStyleOpts(fill="black"))
                    )
                ],
            ),
            opts.GraphicGroup(
                graphic_item=opts.GraphicItem(left='68%', top='61%', z=99),
                children=[
                    opts.GraphicText(
                        graphic_item=opts.GraphicItem(left='68%', top='61%', z=100),
                        graphic_textstyle_opts=opts.GraphicTextStyleOpts(
                            text='上海 杭州 南京\n苏州 无锡 南通 常州\n宁波 温州 嘉兴 绍兴',
                            font='lighter 12px Microsoft YaHei',
                            graphic_basicstyle_opts=opts.GraphicBasicStyleOpts(fill="black"))
                    )
                ],
            ),
            opts.GraphicGroup(
                graphic_item=opts.GraphicItem(left='58%', top='84%', z=99),
                children=[
                    opts.GraphicText(
                        graphic_item=opts.GraphicItem(left='58%', top='84%', z=100),
                        graphic_textstyle_opts=opts.GraphicTextStyleOpts(
                            text='广东5G商用城市\n最多(6个)',
                            font='bolder 14px Microsoft YaHei',
                            graphic_basicstyle_opts=opts.GraphicBasicStyleOpts(fill="black"))
                    )
                ],
            ),
            opts.GraphicGroup(
                graphic_item=opts.GraphicItem(left='58%', top='90%', z=99),
                children=[
                    opts.GraphicText(
                        graphic_item=opts.GraphicItem(z=100),
                        graphic_textstyle_opts=opts.GraphicTextStyleOpts(
                            text='广州 深圳 佛山 东莞 中山 珠海',
                            font='lighter 12px Microsoft YaHei',
                            graphic_basicstyle_opts=opts.GraphicBasicStyleOpts(fill="black"))
                    )
                ],
            ),
            opts.GraphicGroup(
                graphic_item=opts.GraphicItem(left='23%', top='63%', z=99),
                children=[
                    opts.GraphicText(
                        graphic_item=opts.GraphicItem(z=100),
                        graphic_textstyle_opts=opts.GraphicTextStyleOpts(
                            text='西藏是目前唯一没有\n商用网络的省份',
                            font='bolder 14px Microsoft YaHei',
                            graphic_basicstyle_opts=opts.GraphicBasicStyleOpts(fill="black"))
                    )
                ]
            )
        ]
    )
    .render("目前提供5G商用网络的城市.html")
)

Como puede ver aquí, a través de la función JsCode , también puede agregar código JS directamente.

La función del código JS es mostrar solo una parte de la información de la etiqueta. Después de todo, los 55 nombres de ciudades se muestran en el mapa, lo cual es un poco complicado.

La función GraphicGroup es el componente de elemento gráfico nativo de Pyecharts, a través del cual puede agregar texto , imágenes y otros elementos al gráfico .

Aquí, la F pequeña agrega 5 párrafos de texto y define la posición y el estilo del texto.

En el mapa, la mayoría de las 55 ciudades están ubicadas en capitales de provincia, municipios directamente bajo el Gobierno Central, el delta del río Yangtze y el delta del río Pearl.

Se espera que cada vez más ciudades puedan ofrecer redes 5G y reducir el precio de los paquetes 5G.


更多精彩推荐
☞本周六定位上海!解析百度文心(ERNIE)如何助力快速定制企业级NLP模型
☞头发越秃程序员就越厉害? | 每日趣闻
☞独家对话谢宝友:做一款类似于 Linux 的国产操作系统  | 人物志
☞DeepFashion实现服装检测搭配
☞蓝色巨人IBM全力奔赴的混合云之旅能顺利吗?
☞区块链赋能供应链金融|应用优势与四类常见模式
点分享点点赞点在看

Supongo que te gusta

Origin blog.csdn.net/csdnsevenn/article/details/109252066
Recomendado
Clasificación