В области визуализации данных диаграммы информационной панели представляют собой интуитивно понятный и мощный инструмент для отображения состояния ключевых индикаторов в реальном времени. Pyecharts — это библиотека диаграмм Python, основанная на Echarts, которая предоставляет различные типы диаграмм, включая диаграммы информационной панели. В этой статье рассказывается, как использовать Pyecharts для рисования различных интересных диаграмм информационной панели, подробно объясняются соответствующие параметры и прикрепляются реальные примеры кода.
Сначала убедитесь, что у вас установлен Pyecharts. Если он еще не установлен, вы можете установить его с помощью следующей команды:
pip install pyecharts
При рисовании диаграммы информационной панели нам необходимо понимать некоторые ключевые параметры, чтобы настроить внешний вид и функциональность диаграммы. Вот некоторые общие параметры диаграммы информационной панели:
from pyecharts import options as opts
from pyecharts.charts import Gauge
# данные
value = 65.5
# Нарисуйте базовую панель мониторинга
gauge_basic = (
Gauge()
.add("", [("Базовая панель мониторинга", value)])
.set_global_opts(
title_opts=opts.TitleOpts(title="Базовая панель мониторинга"),
legend_opts=opts.LegendOpts(is_show=False),
)
.set_series_opts(
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(
color=[[0.2, "#91c7ae"], [0.8, "#63869e"], [1, "#c23531"]]
)
)
)
)
# Сохранить диаграмму
gauge_basic.render("gauge_basic.html")
from pyecharts import options as opts
from pyecharts.charts import Gauge
# данные
value = 75.8
# Нарисуйте панель мониторинга в собственном стиле
gauge_custom = (
Gauge()
.add("", [("Панель управления в пользовательском стиле", value)])
.set_global_opts(
title_opts=opts.TitleOpts(title="Панель управления в пользовательском стиле"),
legend_opts=opts.LegendOpts(is_show=False),
)
.set_series_opts(
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(
color=[[0.2, "#91c7ae"], [0.8, "#63869e"], [1, "#c23531"]],
width=8,
)
),
pointer_opts=opts.PointerOpts(width=5),
)
)
# Сохранить диаграмму
gauge_custom.render("gauge_custom.html")
from pyecharts import options as opts
from pyecharts.charts import Gauge
# данные
value_series = [68.2, 52.6, 80.5]
# Рисовать панели мониторинга из нескольких серий
gauge_multi_series = (
Gauge()
.add("", [("Series 1", value_series[0]), ("Series 2", value_series[1]), ("Series 3", value_series[2])])
.set_global_opts(
title_opts=opts.TitleOpts(title="Панель мониторинга нескольких серий"),
legend_opts=opts.LegendOpts(is_show=True, pos_top="5%"),
)
.set_series_opts(
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(
color=[[0.2, "#91c7ae"], [0.8, "#63869e"], [1, "#c23531"]],
width=8,
)
),
pointer_opts=opts.PointerOpts(width=5),
)
)
# Сохранить диаграмму
gauge_multi_series.render("gauge_multi_series.html")
from pyecharts import options as opts
from pyecharts.charts import Gauge
# данные
value = 90.3
# Нарисуйте панель мониторинга пользовательского масштаба
gauge_custom_scale = (
Gauge()
.add("", [("Настраиваемая панель мониторинга масштаба", value)])
.set_global_opts(
title_opts=opts.TitleOpts(title="Настраиваемая панель масштабирования"),
legend_opts=opts.LegendOpts(is_show=False),
)
.set_series_opts(
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(
color=[[0.2, "#91c7ae"], [0.8, "#63869e"], [1, "#c23531"]],
width=12,
)
),
split_line_opts=opts.SplitLineOpts(length=20),
axislabel_opts=opts.LabelOpts(font_size=12),
)
)
# Сохранить диаграмму
gauge_custom_scale.render("gauge_custom_scale.html")
import random
import time
from pyecharts import options as opts
from pyecharts.charts import Gauge
# функция генерации данных
def generate_random_value():
return round(random.uniform(60, 90), 2)
# Обновляйте данные в режиме реального времени и рисуйте динамические информационные панели.
def update_dynamic_gauge():
gauge_dynamic = (
Gauge()
.add("", [("Динамическая панель мониторинга", generate_random_value())])
.set_global_opts(
title_opts=opts.TitleOpts(title="Динамическая панель мониторинга"),
legend_opts=opts.LegendOpts(is_show=False),
)
.set_series_opts(
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(
color=[[0.2, "#91c7ae"], [0.8, "#63869e"], [1, "#c23531"]],
width=12,
)
),
split_line_opts=opts.SplitLineOpts(length=20),
axislabel_opts=opts.LabelOpts(font_size=12),
)
)
while True:
# возобновлятьданные
value = generate_random_value()
gauge_dynamic.set_series_opts(data=[("Динамическая панель мониторинга", value)])
# Рендеринг диаграммы
gauge_dynamic.render("gauge_dynamic.html")
# Сделайте паузу на некоторое время, а затем обновите
time.sleep(2)
# Запустите функцию обновления динамической информационной панели.
update_dynamic_gauge()
from pyecharts import options as opts
from pyecharts.charts import Gauge, Line
from pyecharts.commons.utils import JsCode
# данные
value_gauge = 75.2
data_line = [random.randint(60, 90) for _ in range(10)]
# Нарисуйте комбинацию информационной панели и линейного графика.
gauge_line_combination = (
Gauge()
.add("", [("Панель управления", value_gauge)])
.set_global_opts(
title_opts=opts.TitleOpts(title="Комбинация информационной панели и линейного графика"),
legend_opts=opts.LegendOpts(is_show=False),
)
.set_series_opts(
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(
color=[[0.2, "#91c7ae"], [0.8, "#63869e"], [1, "#c23531"]],
width=12,
)
),
split_line_opts=opts.SplitLineOpts(length=20),
axislabel_opts=opts.LabelOpts(font_size=12),
)
)
line_chart = (
Line()
.add_xaxis(list(range(1, 11)))
.add_yaxis("Линейный график", data_line)
.set_global_opts(title_opts=opts.TitleOpts(title="Линейный график"))
)
# Объединение информационных панелей и линейных диаграмм на одной странице
gauge_line_page = (
Page()
.add(gauge_line_combination, line_chart)
)
# Сохранить диаграмму
gauge_line_page.render("gauge_line_combination.html")
from pyecharts import options as opts
from pyecharts.charts import Gauge
# данные
value = 80.7
# Нарисуйте панель управления в стиле пользовательского указателя
gauge_custom_pointer = (
Gauge()
.add("", [("Настраиваемая панель указателей", value)])
.set_global_opts(
title_opts=opts.TitleOpts(title="Настраиваемая панель указателей"),
legend_opts=opts.LegendOpts(is_show=False),
)
.set_series_opts(
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(
color=[[0.2, "#91c7ae"], [0.8, "#63869e"], [1, "#c23531"]],
width=12,
)
),
pointer_opts=opts.PointerOpts(
width=6,
length="80%",
shadow_color="#fff",
shadow_offset_y=5,
itemstyle_opts={"color": "auto", "borderColor": "auto"},
),
)
)
# Сохранить диаграмму
gauge_custom_pointer.render("gauge_custom_pointer.html")
from pyecharts import options as opts
from pyecharts.charts import Gauge, Pie
from pyecharts.faker import Faker
# данные
value_gauge = 65.8
data_pie = list(zip(Faker.choose(), Faker.values()))
# Нарисуйте связь между информационной панелью и круговой диаграммой
gauge_pie_interaction = (
Gauge()
.add("", [("Панель управления", value_gauge)])
.set_global_opts(
title_opts=opts.TitleOpts(title="Связь между информационной панелью и круговой диаграммой"),
legend_opts=opts.LegendOpts(is_show=False),
)
.set_series_opts(
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(
color=[[0.2, "#91c7ae"], [0.8, "#63869e"], [1, "#c23531"]],
width=12,
)
),
split_line_opts=opts.SplitLineOpts(length=20),
axislabel_opts=opts.LabelOpts(font_size=12),
)
)
pie_chart = (
Pie()
.add("", data_pie, radius=["30%", "55%"])
.set_global_opts(title_opts=opts.TitleOpts(title="круговая диаграмма"))
)
# Свяжите информационную панель и круговую диаграмму на одной странице
gauge_pie_page = (
Page()
.add(gauge_pie_interaction, pie_chart)
)
# Сохранить диаграмму
gauge_pie_page.render("gauge_pie_interaction.html")
from pyecharts import options as opts
from pyecharts.charts import Gauge, Bar
from pyecharts.faker import Faker
# данные
value_gauge = 75.4
data_bar = list(zip(Faker.choose(), Faker.values()))
# Нарисуйте связь между информационной панелью и гистограммой.
gauge_bar_interaction = (
Gauge()
.add("", [("Панель управления", value_gauge)])
.set_global_opts(
title_opts=opts.TitleOpts(title="Связь между информационной панелью и гистограммой"),
legend_opts=opts.LegendOpts(is_show=False),
)
.set_series_opts(
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(
color=[[0.2, "#91c7ae"], [0.8, "#63869e"], [1, "#c23531"]],
width=12,
)
),
split_line_opts=opts.SplitLineOpts(length=20),
axislabel_opts=opts.LabelOpts(font_size=12),
)
)
bar_chart = (
Bar()
.add_xaxis(Faker.choose())
.add_yaxis("Гистограмма", Faker.values())
.set_global_opts(title_opts=opts.TitleOpts(title="гистограмма"))
)
# Свяжите панель мониторинга и гистограмму на одной странице.
gauge_bar_page = (
Page()
.add(gauge_bar_interaction, bar_chart)
)
# Сохранить диаграмму
gauge_bar_page.render("gauge_bar_interaction.html")
from pyecharts import options as opts
from pyecharts.charts import Gauge, Scatter
from pyecharts.faker import Faker
# данные
value_gauge = 85.1
data_scatter = [(i, random.randint(60, 90)) for i in range(1, 11)]
# Нарисуйте связь между информационной панелью и точечной диаграммой.
gauge_scatter_interaction = (
Gauge()
.add("", [("Панель управления", value_gauge)])
.set_global_opts(
title_opts=opts.TitleOpts(title="Связь между информационной панелью и точечной диаграммой"),
legend_opts=opts.LegendOpts(is_show=False),
)
.set_series_opts(
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(
color=[[0.2, "#91c7ae"], [0.8, "#63869e"], [1, "#c23531"]],
width=12,
)
),
split_line_opts=opts.SplitLineOpts(length=20),
axislabel_opts=opts.LabelOpts(font_size=12),
)
)
scatter_chart = (
Scatter()
.add_xaxis(list(range(1, 11)))
.add_yaxis("Точечная диаграмма", data_scatter)
.set_global_opts(title_opts=opts.TitleOpts(title="График рассеяния"))
)
# Свяжите панель мониторинга и точечную диаграмму на одной странице.
gauge_scatter_page = (
Page()
.add(gauge_scatter_interaction, scatter_chart)
)
# Сохранить диаграмму
gauge_scatter_page.render("gauge_scatter_interaction.html")
from pyecharts import options as opts
from pyecharts.charts import Gauge, Area
from pyecharts.faker import Faker
# данные
value_gauge = 78.6
data_area = [(i, random.randint(60, 90)) for i in range(1, 11)]
# Нарисуйте связь между информационной панелью и диаграммой с областями.
gauge_area_interaction = (
Gauge()
.add("", [("Панель управления", value_gauge)])
.set_global_opts(
title_opts=opts.TitleOpts(title="Связь между информационной панелью и диаграммой областей"),
legend_opts=opts.LegendOpts(is_show=False),
)
.set_series_opts(
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(
color=[[0.2, "#91c7ae"], [0.8, "#63869e"], [1, "#c23531"]],
width=12,
)
),
split_line_opts=opts.SplitLineOpts(length=20),
axislabel_opts=opts.LabelOpts(font_size=12),
)
)
area_chart = (
Area()
.add_xaxis(list(range(1, 11)))
.add_yaxis("Диаграмма областей", data_area)
.set_global_opts(title_opts=opts.TitleOpts(title="диаграмма областей"))
)
# Свяжите панель мониторинга и диаграмму с областями на одной странице.
gauge_area_page = (
Page()
.add(gauge_area_interaction, area_chart)
)
# Сохранить диаграмму
gauge_area_page.render("gauge_area_interaction.html")
На приведенных выше примерах мы показываем, как добиться связи между информационными панелями, точечными диаграммами и диаграммами с областями. Такая связь может помочь нам более полно представить распределение и тенденции данных и обеспечить более глубокое понимание данных. В реальных проектах в соответствии с потребностями и типами данных выбирайте соответствующие диаграммы связей, чтобы визуализировать данные более ярко и четко.
Я надеюсь, что эти примеры вдохновят вас при использовании Pyecharts для установления связи между диаграммами информационной панели и другими диаграммами. На практике можно выполнить дополнительную настройку на основе конкретных сценариев и данных для удовлетворения реальных потребностей проекта.