Bokeh Bokeh中的两个不同y轴范围的单一图表
在本文中,我们将介绍如何使用Bokeh库创建一个图表,并在该图表中包含两个不同的y轴范围。Bokeh是一个用于Python的强大的交互式数据可视化库,可以帮助我们以可视化的方式探索和传达数据。
阅读更多:Bokeh 教程
Bokeh简介
Bokeh提供了多种可视化功能,包括绘制折线图、散点图、柱状图等等。通过Bokeh,我们不仅可以创建静态图,还可以创建交互式的数据可视化工具,使用户可以通过鼠标交互来探索数据。
创建包含两个不同y轴范围的图表
在Bokeh中,我们可以使用figure()
函数创建并配置一个图表对象。我们可以在图表对象上添加各种图表元素,例如线条、标记、网格等。为了创建两个不同y轴范围的图表,我们需要创建两个数据源,将它们分别与两个y轴关联起来。
下面的示例演示了如何使用Bokeh创建一个包含两个不同y轴范围的图表。该图表显示了两个数据集的月度收入和支出。我们希望收入数据使用左侧的y轴,支出数据使用右侧的y轴。
from bokeh.plotting import figure, show
from bokeh.io import output_notebook
# 创建两个数据集
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
income = [1000, 1500, 1200, 1800, 2000, 1600, 1700, 1900, 2100, 2200, 2000, 1800]
expenses = [800, 1000, 900, 1200, 1100, 1400, 1500, 1300, 1400, 1200, 1100, 1000]
# 创建图表对象
p = figure(x_range=months)
# 绘制收入折线图
p.line(months, income, color='blue', legend_label='Income')
# 创建右侧y轴
p.extra_y_ranges = {"expenses": Range1d(start=0, end=max(expenses))}
p.add_layout(LinearAxis(y_range_name="expenses", axis_label='Expenses'), 'right')
# 绘制支出折线图
p.line(months, expenses, color='red', y_range_name="expenses", legend_label='Expenses')
# 设置图表属性
p.legend.location = "top_left"
p.title.text = 'Monthly Income and Expenses'
p.xaxis.axis_label = 'Month'
p.yaxis.axis_label = 'Income'
p.y_range.start = 0
# 显示图表
output_notebook()
show(p)
从上述代码可以看出,我们首先创建了两个数据集:月度收入和支出。然后我们创建了一个图表对象,并通过figure()
函数将x轴范围设置为月份。接着,我们使用line()
函数在图表上绘制了收入和支出的折线图。为了创建右侧的y轴,我们使用了extra_y_ranges
属性和add_layout()
函数。最后,我们为图表设置了一些属性(例如图表标题、标签等)并显示出来。
通过上述代码,我们可以创建一个包含两个不同y轴范围的图表,并可视化月度收入和支出的变化趋势。
总结
通过Bokeh库,我们可以轻松地创建并配置包含两个不同y轴范围的图表。这使得我们能够同时显示具有不同量纲的数据,帮助我们更好地理解和比较不同的变量。 Bokeh提供了丰富的功能和选项,使得数据可视化变得更加灵活和交互式。
无论是在数据分析、报告还是数据可视化方面,Bokeh是一个非常有用的工具。通过学习和使用它,我们能够更好地传达数据、探索数据,并从数据中获得有价值的洞察。