сюжетно-экспресс-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()