在Python中使用 Altair 突出显示条形图中的条形
数据可视化是数据的图形表示, Python捆绑了多个可用于数据可视化的库,这使其成为数据科学家的热门选择。 Altair 就是这样一种Python中的数据可视化库。 Altair API 简单、用户友好、一致,并且构建在 Vega-Lite JSON 配置之上。
在本文中,我们使用 Altair 创建数据集的条形图并突出显示符合指定条件的条形。使用的另一个库是 Pandas。 Pandas 是Python中的数据分析库,可用于数据集的操作。
为了使用altair从给定的数据集创建条形图,使用了 altair模块的Chart类。
句法:
altair.Chart(data, encoding, mark, width, height, **kwargs)
Parameters:
- data: This references the dataset
- encoding: It is a key-value mapping between encoding channels and field definition.
- mark: specifies the mark type ie bar, circle, square, area, point etc
- width: specifies the visualization width
- height: specifies the visualization width
Note: **kwargs: allows to pass a variable length argument
让我们考虑以下使用给定数据集的示例。
示例 1:
在此程序中,我们将更改颜色或突出显示条形图中评分大于或等于 80 的名称。
Python3
# Import required module
import altair as alt
import pandas as pd
df = pd.read_csv("cereal.csv")
alt.Chart(df).mark_bar().encode(
x='name',
y="rating",
# The highlight is set based on the result
# of the conditional statement
color=alt.condition(
alt.datum.rating >= 80, # If the rating is 80 it returns True,
alt.value('green'), # and the matching bars are set as green.
# and if it does not satisfy the condition
# the color is set to steelblue.
alt.value('steelblue')
)
).properties(width=500)
Python3
# Import required module
import altair as alt
import pandas as pd
df = pd.read_csv("cereal.csv")
alt.Chart(df).mark_bar().encode(
x='name',
y="rating",
# The highlight is set based on
# the result of the conditional statement
color=alt.condition(
alt.datum.rating >= 60, # If the rating is 80 it returns True,
alt.value('green'), # and the matching bars are set as green.
# and if it does not satisfy the condition
# the color is set to steelblue.
alt.value('steelblue')
)
).properties(width=500)
输出
示例 2:
在这里,我们将更改颜色或突出显示条形图中评分大于或等于 60 的名称。
蟒蛇3
# Import required module
import altair as alt
import pandas as pd
df = pd.read_csv("cereal.csv")
alt.Chart(df).mark_bar().encode(
x='name',
y="rating",
# The highlight is set based on
# the result of the conditional statement
color=alt.condition(
alt.datum.rating >= 60, # If the rating is 80 it returns True,
alt.value('green'), # and the matching bars are set as green.
# and if it does not satisfy the condition
# the color is set to steelblue.
alt.value('steelblue')
)
).properties(width=500)
输出
解释
首先,导入altair模块和pandas模块。使用 pandas 库的 read_csv 方法将数据集加载到数据框 'df' 中。数据集已经存在于本地系统中,因此我们只提到了文件名。但是,对于在线数据集,可以指定 URL。调用altair模块的Chart类,传递数据框。指定图表的标记类型(此处为条形类型),最后指定编码,包括设置图表的 X 和 Y 轴并为条形指定颜色。调用条件函数并声明一个条件。满足条件的数据将条形颜色值设置为绿色,其余不满足条件的数据将值设置为钢蓝色。最后,使用properties()方法将可视化的宽度设置为 500px。该图表是针对品牌名称的评级绘制的。结果显示在图表中。