python数据可视化——饼图

简介: python数据可视化——饼图

文章目录


python数据可视化饼图


python数据可视化饼图


import pandas as pd
import numpy as np
from pandas import Series, DataFrame
import matplotlib.pyplot as plt
from matplotlib.font_manager import _rebuild
import matplotlib as mpl
_rebuild()
mpl.rcParams["font.sans-serif"] = [u"SimHei"]
mpl.rcParams["axes.unicode_minus"] = False
def fun1():
    y2016 = [13500,14500,25000,40000]
    y2017 = [16000,24000,37000,55000]
    labels = ["北京","杭州","上海","深圳"]
    #设定每个柱子的宽度
    bar_width = 0.45
    plt.bar(np.arange(4), y2016, label="2016",color="steelblue", alpha=0.8, width=bar_width)
    plt.bar(np.arange(4)+bar_width,y2017,label="2017",color="red",alpha=0.8,width=bar_width)
    plt.legend()
    plt.ylim([0,70000])
    plt.xticks([0.25,1.25,2.25,3.25],labels)
fun1()
plt.pie(x, explode=None, labels=None, colors=None, autopct=None,pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None,radius=None, counterclock=True, wedgeprops=None, textprops=None,center=(0, 0), frame=False, rotatelabels=False, hold=None, data=None)
# 参数说明:
# x:数组。输入的数据用于创建一个饼图。
# explode:数组,可选参数,默认为None。
#         如果不是None,是一个长度与x相同长度的数组,用来指定每部分的偏移量。
#         例如:explode=[0,0,0.2,0,0],第二个饼块被拖出。
# labels:列表,可选参数,默认为:None。
#        一个字符串序列作为每个饼块的标记。
# colors:数组,可选参数,默认为:None。
#       用来标注每块饼图的matplotlib颜色参数序列。
#       如果为None,将使用当前活动环的颜色。
# autopct:默认是None,字符串或函数,可选参数。
#         如果不是None,是一个字符串或函数用带有数值饼图标注。
# pctdistance:浮点数,可选参数,默认值:0.6。
#           每个饼切片的中心和通过autopct生成的文本开始之间的比例。
#           如果autopct是None,被忽略。
# shadow:布尔值,可选参数,默认值:False。
#         在饼图下面画一个阴影。
# labeldistance:浮点数,可选参数,默认值:1.1。
#             被画饼标记的直径。
# startangle:浮点类型,可选参数,默认:None。
#           如果不是None,从x轴逆时针旋转饼图的开始角度。
# radius:浮点类型,可选参数,默认为:None。
#       饼图的半径,如果半径是None,将被设置成1。
# counterclock:布尔值,可选参数,默认为:None。
#             指定指针方向,顺时针或者逆时针。
# wedgeprops:字典类型,可选参数,默认值:None。
#             参数字典传递给wedge对象用来画一个饼图。
#             例如:wedgeprops={'linewidth':3}设置wedge线宽为3。
# textprops:字典类型,可选参数,默认值为:None。
#           传递给text对象的字典参数。
# center:浮点类型的列表,可选参数,默认值:(0,0)。
#       图标中心位置。
# frame:布尔类型,可选参数,默认值:False。
#       如果是true,绘制带有表的轴框架。
# rotatelabels:布尔类型,可选参数,默认为:False。
#           如果为True,旋转每个label到指定的角度。
# 返回值:
# patches:列表。matplotlib.patches.Wedge实例列表。
# text:列表。matplotlib.text.Text实例label的列表。
# autotexts:列表。A是数字标签的Text实例列表。
#           仅当参数autopct不为None时才返回。
# '''
#饼图
def fun2():
    labels = ["中专","大专","本科","硕士","其它"]
    edu = [0.2515,0.3724,0.3336,0.0368,0.0057]
    colors= ["#9999FF","#ff9999","#7777aa","#2442aa","#dd5555"]
    explode = [0,0.1,0,0,0]
    plt.pie(x=edu,#绘图的数据
           labels=labels,#数据标签
           colors=colors,#饼图颜色
           autopct="%.1f%%",#设置百分比
           startangle=180,#设置初始角度
           #frame=1,
           #center=(2,2)
           explode=explode,#设置突出显示
           radius=1.5#设置饼的半径
           )
fun2()
#散点图
def fun3():
    x = np.random.randn(1000)
    y = np.random.randn(1000)
    color = np.random.random(3000).reshape((1000,3))
    plt.scatter(x,y,color='b',s=5)#s表示点的半径
fun3()
#子图
def fun4():
    plt.figure(figsize=(12,8))
    #第一行左一
    a1 = plt.subplot(2,3,1)
    x1 = np.arange(5)
    y1 = x1 + 5
    a1.plot(x1,y1)
    #第一行中
    a2 = plt.subplot(2,3,2)
    x2 = np.linspace(-np.pi,np.pi,256)
    y2 = np.sin(x2)
    a2.plot(x2,y2)
    #第一行右一
    a3 = plt.subplot(2,3,3)
    x3 = np.linspace(-np.pi,np.pi,256)
    y3 = np.cos(x3)
    a3.plot(x3,y3)
    #第二行左一
    a4 = plt.subplot(2,3,4)
    x4 = np.arange(5)
    y4 = x4 + 5
    a4.plot(x4,y4)
    #第二行中
    a5 = plt.subplot(2,3,5)
    x5 = np.linspace(-np.pi,np.pi,256)
    y5 = np.sin(x5)
    a5.plot(x5,y5)
    #第二行右一
    a6 = plt.subplot(2,3,6)
    x6 = np.linspace(-np.pi,np.pi,256)
    y6 = np.cos(x6)
    a6.plot(x6,y6)
fun4()
plt.savefig(fname, dpi=None, facecolor='w', edgecolor='w',orientation='portrait', papertype=None, format=None,transparent=False, bbox_inches=None, pad_inches=0.1,frameon=None, metadata=None)
#图片保存
fun4()
#fname保存图片的路径
#dpi分辨率(每英寸上有多少点)
plt.savefig(fname="test.jpg",dpi=500, facecolor="g")


相关文章
|
23天前
|
数据可视化 数据挖掘 定位技术
Python和Geopandas进行地理数据可视化
【10月更文挑战第22天】本文介绍了如何使用Python和Geopandas进行地理数据可视化和分析,涵盖从准备工作、加载数据、数据探索与处理、地理数据可视化、空间分析与查询到交互式地理数据可视化等内容。通过丰富的代码示例和案例演示,帮助读者掌握地理数据分析的基本方法,为实际应用提供支持。
68 19
|
18天前
|
移动开发 数据可视化 数据挖掘
利用Python实现数据可视化:以Matplotlib和Seaborn为例
【10月更文挑战第37天】本文旨在引导读者理解并掌握使用Python进行数据可视化的基本方法。通过深入浅出的介绍,我们将探索如何使用两个流行的库——Matplotlib和Seaborn,来创建引人入胜的图表。文章将通过具体示例展示如何从简单的图表开始,逐步过渡到更复杂的可视化技术,帮助初学者构建起强大的数据呈现能力。
|
2月前
|
数据可视化 数据挖掘 Python
使用Python进行数据可视化:探索与实践
【10月更文挑战第21天】本文旨在通过Python编程,介绍如何利用数据可视化技术来揭示数据背后的信息和趋势。我们将从基础的图表创建开始,逐步深入到高级可视化技巧,包括交互式图表和动态展示。文章将引导读者理解不同图表类型适用的场景,并教授如何使用流行的库如Matplotlib和Seaborn来制作美观且具有洞察力的可视化作品。
47 7
|
1月前
|
数据可视化 定位技术 Python
使用Python进行数据可视化
【10月更文挑战第22天】在这篇文章中,我们将深入探讨如何使用Python进行数据可视化。我们将从基础的图表开始,然后逐步进入更复杂的可视化技术。我们将通过实例代码来展示如何实现这些可视化,以便读者能够更好地理解和应用这些技术。
26 5
|
2月前
|
数据可视化 Python
使用Python进行数据可视化的初学者指南
【10月更文挑战第20天】本文旨在为编程新手提供一个简洁明了的入门指南,通过Python语言实现数据可视化。我们会介绍如何安装必要的库、理解数据结构,并利用这些知识来创建基本图表。文章将用通俗易懂的语言和示例代码,帮助读者快速掌握数据可视化的基础技能。
35 4
|
2月前
|
数据可视化 开发者 Python
使用Python进行数据可视化:从入门到精通
【10月更文挑战第7天】本文将引导您通过Python的可视化库,如Matplotlib和Seaborn,来探索和展示数据。我们将通过实际代码示例,学习如何创建各种图表,包括条形图、散点图和直方图等,并讨论如何优化这些图表以更好地传达信息。无论您是初学者还是有一定基础的开发者,这篇文章都能帮助您提高数据可视化技能。
|
2月前
|
数据可视化 Python
Python编程之数据可视化入门
【10月更文挑战第4天】在数字时代的洪流中,数据如同星辰般璀璨,而将它们绘制成图表,便是我们探索宇宙的方式。本文将带你启航,用Python这艘航船,驶向数据可视化的奥秘。我们将从安装必要的工具包开始,逐步深入到数据的呈现,最后通过代码示例点亮知识的灯塔,指引你在数据海洋中航行。让我们握紧舵盘,乘风破浪,揭开数据背后的故事吧!
|
2月前
|
数据可视化 数据挖掘 定位技术
Python中利用Bokeh创建动态数据可视化
【10月更文挑战第14天】本文介绍了如何使用 Bokeh 库在 Python 中创建动态数据可视化。Bokeh 是一个强大的开源可视化工具,支持交互式图表和大规模数据集的可视化。文章从安装 Bokeh 开始,逐步讲解了如何创建动态折线图,并添加了交互式控件如按钮、滑块和下拉菜单,以实现数据更新频率的调节和颜色选择。通过这些示例,读者可以掌握 Bokeh 的基本用法,进一步探索其丰富功能,创建更具吸引力和实用性的动态数据可视化。
32 0
|
2月前
|
数据可视化 定位技术 Python
Python数据可视化--Matplotlib--入门
Python数据可视化--Matplotlib--入门
29 0
|
2月前
|
数据可视化 数据挖掘 大数据
使用Python进行简单数据可视化
【10月更文挑战第2天】使用Python进行简单数据可视化
34 0