сюжетно-экспресс-9-сюжетно нарисовать пирог пирог
В этой статье рассказывается, как использовать px.pie и go.Pie для рисования круговой диаграммы, а также соответствующие настройки параметров в круговой диаграмме.
A pie chart is a circular statistical chart, which is divided into sectors to illustrate numerical proportion.
- На основе px.pie
- На основе go.pie
библиотека импорта
import pandas as pd
import numpy as np
import plotly_express as px
import plotly.graph_objects as go
import dash
import dash_core_components as dcc
import dash_html_components as html
На основе реализации px.pie
In px.pie, data visualized by the sectors of the pie is set in values. The sector labels are set in names.
df = px.data.gapminder().query("year == 2007").query("continent == 'Europe'")
df.loc[df["pop"] < 2.e6, "country"] = "Other countries" # 将满足条件的全部改为Other countries
fig = px.pie(df, values="pop", names="country", title="Population of Eurpean contient")
fig.show()
Реализация на базе go.pie
basic
In go.Pie, data visualized by the sectors of the pie is set in values. The sector labels are set in labels. The sector colors are set in marker.colors.
- labels
- values
labels = ['Oxygen','Hydrogen','Carbon_Dioxide','Nitrogen']
values = [4500, 2500, 1053, 500]
fig = go.Figure(data=go.Pie(labels=labels,values=values))
fig.show()
update_traces
# 颜色选项
colors = ['gold', 'mediumturquoise', 'darkorange', 'lightgreen']
# 绘图
fig = go.Figure(data=go.Pie(labels=['Oxygen','Hydrogen','Carbon_Dioxide','Nitrogen'],
values=[4500,2500,1053,500]))
# 更新饼图配置
fig.update_traces(hoverinfo='label+percent', # 悬停信息
textinfo='value', # 饼图中显示的信息
textfont_size=20,
marker=dict(colors=colors, line=dict(color='#000000', width=2)))
fig.show()
скрытие текста
df = px.data.gapminder().query("continent == 'Asia'")
fig = px.pie(df, values='pop', names='country')
fig.update_traces(textposition='inside') # 文字信息在里面
fig.update_layout(uniformtext_minsize=15, # 文本信息的最小值
uniformtext_mode='hide' # 小于最小值则被隐藏
)
fig.show()
Сравнение эффектов без укрытия:
Установить цвет круговой диаграммы
по последовательности
пройти черезcolor_discrete_sequence=px.colors.sequential.Bluylреализовать
df = px.data.tips()
# 设置饼图的颜色:px.colors.sequential.Bluyl
fig = px.pie(df, values="tip", names="day",color_discrete_sequence=px.colors.sequential.Bluyl)
fig.show()
в словарной форме
# 通过字典的形式上色:这个颜色好看呀
fig = px.pie(df, values="tip",names="day",color="day",
color_discrete_map={'Thur':'lightcyan',
'Fri':'cyan',
'Sat':'royalblue',
'Sun':'darkblue'})
fig.show()
Настройки макета и свойств
df = px.data.gapminder().query("year == 2007").query("continent == 'Americas'") # 居然是Americas!!!!
fig = px.pie(df, values='pop', names='country',
title='Population of American continent',
hover_data=['lifeExp'], labels={'lifeExp':'life expectancy'})
fig.update_traces(textposition='inside', textinfo='percent+label') # 将文本的信息放在里面
fig.show()
Сравнение эффектов после изменения параметров:
расположение текста
Как разумно расположить текстовую информацию в секторе, 3 способа:
- horizontal
- radial
- tangential
Donut & Pulling sectors
labels = ['Oxygen','Hydrogen','Carbon_Dioxide','Nitrogen']
values = [4500, 2500, 1053, 500]
# Use `hole` to create a donut-like pie chart
fig = go.Figure(data=[go.Pie(labels=labels, values=values, hole=.3)]) # 通过hole参数实现中心的环
fig.show()
labels = ['Oxygen','Hydrogen','Carbon_Dioxide','Nitrogen']
values = [4500, 2500, 1053, 500]
# pull is given as a fraction of the pie radius
fig = go.Figure(data=[go.Pie(labels=labels, values=values, pull=[0, 0, 0.2, 0])]) # 通过pull参数
fig.show()