介绍
plotly是一个易于使用,功能强大的python绘图库,用于构建可交互式的图表(可以自行运行后使用鼠标拖拽图片试试),本系列文章将介绍plotly绘制各种类型图的方法,本文将介绍——饼图
饼图
简单饼图
代码解释
-
df = px.data.gapminder().query("year == 2007").query("continent == 'Europe'")
首先,代码从Plotly库提供的gapminder数据集中筛选出特定子集。gapminder数据集包含了多个国家多年的人口、收入等指标。第一个.query()调用筛选出年份为2007的数据行,第二个.query()调用进一步筛选出位于欧洲大陆的国家。 -
df.loc[df['pop'] < 2.e6, 'country'] = 'Other countries'
接下来,代码使用Pandas库的.loc方法对DataFrame df进行操作。这行代码的目的是将人口少于200万(2.e6)的国家标记为“Other countries”。df[‘pop’] < 2.e6是一个布尔索引,它为满足条件的行生成True,否则生成False。然后,这些布尔值被用作.loc方法的第一个参数,指定了要修改的行。第二个参数是列名’country’,表示我们要修改的是country列的值,将其设置为字符串“Other countries”。 -
fig = px.pie(df, values='pop', names='country', title='Population of European continent')
这一行代码使用px.pie()函数创建了一个饼图。df是经过筛选和修改的DataFrame,values='pop’指定了饼图中每个扇区的大小由pop列的值决定,即人口数量。names='country’指定了饼图中每个扇区的标签由country列的值决定,即国家名称。title='Population of European continent’设置了图表的标题。fig变量存储了创建的饼图对象。
import plotly.express as px
df = px.data.gapminder().query("year == 2007").query("continent == 'Europe'")
df.loc[df['pop'] < 2.e6, 'country'] = 'Other countries'
fig = px.pie(df, values='pop', names='country', title='Population of European continent')
fig.show()
设置饼图的颜色
代码解释
-
df = px.data.tips()
这一行代码调用了plotly.express模块中的px.data.tips()函数,这个函数返回了一个内置的示例数据集tips。这个数据集包含了关于餐厅小费的信息,如账单总额、小费金额、人数以及支付小费的天(星期几)等。 -
fig = px.pie(df, values='tip', names='day', color_discrete_sequence=px.colors.sequential.RdBu)
这一行代码使用px.pie()函数创建了一个饼图。df是tips数据集,values='tip’指定了饼图中每个扇区的大小由tip列的值决定,即小费金额。names='day’指定了饼图中每个扇区的标签由day列的值决定,即支付小费的天(星期几)。
color_discrete_sequence=px.colors.sequential.RdBu
是一个参数,用于指定饼图中不同扇区的颜色序列。px.colors.sequential.RdBu是一个颜色序列,它提供了从红色到蓝色的渐变色,这些颜色将被用于区分饼图中的不同扇区。
import plotly.express as px
df = px.data.tips()
fig = px.pie(df, values='tip', names='day', color_discrete_sequence=px.colors.sequential.RdBu)
fig.show()
甜甜圈图
代码解释
-
定义标签和值的列表:
labels = ['Oxygen','Hydrogen','Carbon_Dioxide','Nitrogen']
:这个列表包含了四种气体的名称,它们将作为饼图中每个扇区的标签。
values = [4500, 2500, 1053, 500]
:这个列表包含了与每个标签相对应的数值,这些数值将决定饼图中每个扇区的大小。 -
创建一个Figure对象:
fig = go.Figure()
:这行代码初始化了一个空的Plotly Figure对象,该对象将用于存储饼图的数据和配置。 -
向Figure对象添加一个Pie图表:
data=[go.Pie(labels=labels, values=values, hole=.3))]
:这行代码创建了一个Pie图表,并将其作为数据层添加到Figure对象中。go.Pie是Plotly库中用于创建饼图的函数。
labels=labels:将前面定义的气体名称列表传递给Pie图表,作为扇区的标签。
values=values:将前面定义的气体数量列表传递给Pie图表,作为扇区的大小。
hole=.3:这个参数指定了饼图中心的空白区域(即“洞”)的大小。值.3表示饼图中心的空白区域占整个饼图半径的30%。
import plotly.graph_objects as go
labels = ['Oxygen','Hydrogen','Carbon_Dioxide','Nitrogen']
values = [4500, 2500, 1053, 500]
fig = go.Figure(data=[go.Pie(labels=labels, values=values, hole=.3)])
fig.show()