pyecharts组合图z_level=10的作用
时间: 2024-05-31 16:09:12 浏览: 110
在 Pyecharts 中,z_level 参数用于控制组合图中不同图表之间的层级关系。z_level 值越大,图表所处的层级就越高,越容易覆盖其他图表。
当我们在组合图中使用多个图表时,如果它们重叠在一起,可能会造成图表信息的混淆。此时,我们可以通过设置 z_level 参数来控制各个图表的显示顺序,确保重要的图表信息不会被遮挡。
当我们设置 z_level=10 时,表示该图表所处的层级最高,其他图表都会在它下面显示。因此,如果我们希望突出某个图表的重要性,可以通过设置 z_level 参数来实现。
相关问题
import pandas as pd from pyecharts import options as opts from pyecharts.charts import Line # 读取Excel文件 data = pd.read_excel('6004020918.xlsx') # 提取数据 week = data['week'] need = data['need'] # 定义三步指数平滑函数 def triple_exponential_smoothing(series, alpha, beta, gamma, n_preds): result = [series[0]] season_length = len(series) // n_preds # 初始化水平、趋势和季节性指数 level, trend, season = series[0], series[1] - series[0], sum(series[:season_length]) / season_length for i in range(1, len(series) + n_preds): if i >= len(series): # 预测新值 m = i - len(series) + 1 result.append(level + m * trend + season) else: # 更新水平、趋势和季节性指数 value = series[i] last_level, level = level, alpha * (value - season) + (1 - alpha) * (level + trend) trend = beta * (level - last_level) + (1 - beta) * trend season = gamma * (value - level) + (1 - gamma) * season result.append(level + trend + season) return result # 设置三步指数平滑法参数 alpha = 0.2 beta = 0.5 gamma = 0.4 n_preds = 177 # 预测的值数量 # 进行三步指数平滑预测 predictions = triple_exponential_smoothing(need[:177], alpha, beta, gamma, n_preds) # 创建折线图对象 line = Line() line.set_global_opts( title_opts=opts.TitleOpts(title='时间序列预测分析'), legend_opts=opts.LegendOpts(pos_top='5%'), tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross") ) # 添加预测值数据 line.add_xaxis(week[:177]) line.add_yaxis('预测值', predictions, is_smooth=True, label_opts=opts.LabelOpts(is_show=False)) # 添加实际值数据 line.add_yaxis('实际值', need[:177], is_smooth=True, label_opts=opts.LabelOpts(is_show=False)) # 生成HTML文件 line.render('time_series_forecast.html')修改代码,使预测出的为负的数据取0
你可以在三步指数平滑预测的结果中添加一个条件判断语句,将负值改为0。修改后的代码如下所示:
```python
# 进行三步指数平滑预测
predictions = triple_exponential_smoothing(need[:177], alpha, beta, gamma, n_preds)
# 将负值改为0
predictions = [max(0, pred) for pred in predictions]
# 创建折线图对象
line = Line()
line.set_global_opts(
title_opts=opts.TitleOpts(title='时间序列预测分析'),
legend_opts=opts.LegendOpts(pos_top='5%'),
tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross")
)
# 添加预测值数据
line.add_xaxis(week[:177])
line.add_yaxis('预测值', predictions, is_smooth=True, label_opts=opts.LabelOpts(is_show=False))
# 添加实际值数据
line.add_yaxis('实际值', need[:177], is_smooth=True, label_opts=opts.LabelOpts(is_show=False))
# 生成HTML文件
line.render('time_series_forecast.html')
```
这样就可以将预测出的负值改为0,并生成对应的HTML文件。
def create_line(df): """ 生成城市地铁线路数量分布情况 """ title_len = df['line'] bins = [0, 5, 10, 15, 20, 25] level = ['0-5', '5-10', '10-15', '15-20', '20以上'] len_stage = pd.cut(title_len, bins=bins, labels=level).value_counts().sort_index() # 生成柱状图 attr = len_stage.index v1 = len_stage.values bar = ( Bar() .add_xaxis(attr.tolist()) .add_yaxis("", v1.tolist(), stack="stack1", label_opts=opts.LabelOpts(is_show=True)) .set_global_opts(title_opts=opts.TitleOpts(title="各城市地铁线路数量分布", pos_top="18", pos_left="center")) ) bar.render("各城市地铁线路数量分布.html")
这段代码是用 Python 的 pyecharts 库生成一个柱状图,用来展示各个城市地铁线路数量的分布情况。首先,代码中使用了 pandas 库的 cut 方法将地铁线路数量分成 5 个区间,并统计每个区间内的城市数量。然后,通过 pyecharts 的 Bar 类来生成柱状图,使用 add_xaxis 方法设置 x 轴的标签为各个区间,add_yaxis 方法设置 y 轴的值为每个区间内的城市数量,使用 set_global_opts 方法设置图表的标题和位置。最后,调用 render 方法将生成的图表保存为一个 HTML 文件。
阅读全文