您的位置:首页 > 编程语言 > Python开发

python第三方库Matplotlib的操作(续)

2019-03-08 12:44 169 查看

今天我封装了一个类
一下代码的数据都是随便打的

#导包
import matplotlib.pyplot as plt

#定义一个绘图类
class TestPlot(object):
def __init__(self,plt):
self.plt = plt

#定义内部属性
#解决中文乱码问题(方法二)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['font.family'] = 'sans-serif'
#指定编码
plt.rcParams['axes.unicode_minus'] = False

#定义柱状图
def my_bar(self):

my_plt = self.plt

#定义数据
GDP = [12404.1,13980.57,9357.79,8990.90]
#出入数据
my_plt.bar(['北京','上海','深圳','重庆'],GDP,align='center',color='steelblue',alpha=0.5)
#添加标签
my_plt.ylabel('生产总值')
#添加标题
my_plt.title('四个直辖市的GDP大比拼')
#刻度范围
my_plt.ylim([5000,15000])
#绘制图形
my_plt.show()

#定义饼图
def my_pie(self):
my_plt = self.plt
#定义数据
beijing = [17,17,23,43]
#定义标签
label = ['2-3年','4-5年','6-7年','七年以上']
color = ['red','green','blue','purple']

#将数据最大值突出显示
indic = []
for item in beijing:
if item == max(beijing):
indic.append(0.1)
else:
indic.append(0)

#将数据传入
my_plt.pie(
#数据
beijing,
#标签
labels=label,
#颜色
colors=color,
#角度
startangle=90,
#阴影
shadow=True,
#突出显示
explode=tuple(indic),
#格式化数字
autopct='%1.1f%%'
)

#设置标题
my_plt.title('饼图示例-统计北京程序员工龄占比')
#绘制图形
my_plt.show()

#定义面积图方法
def my_ares(self):
my_plt = self.plt
#定义日期区间
data = ['2019年03月01日','2019年03月02日','2019年03月03日','2019年03月04日','2019年03月05日']
#定义数据
#收入
earn = [156,324,564,354,789]
#支出
pay = [[15,30,27,43,20],[10,15,20,100,30]]
#将数据传入方法
self.plt.stackplot(data,earn,pay,colors=['green','blue','orange'])
#生成图例
my_plt .plot([],[],color='green',label='收入')
my_plt .plot([],[],color='blue',label='午餐')
my_plt .plot([],[],color='orange',label='晚餐')

#设置标题
my_plt .title('面积图样例-统计五天收入和支出')
#显示图例
my_plt .legend()
#绘制图形
my_plt .show()

if __name__ == "__main__":
#实例化对象
testplot = TestPlot(plt)
testplot.my_ares()
testplot.my_bar()
testplot.my_pie()

效果如下图所示



以上都是本人自己创作,如果需要更深的了解请点击下面的网址
[http://www.runoob.com/numpy/numpy-matplotlib.html]

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: