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")