Python 3 《plot可视化》入门练习

#!/usr/bin/env python
# -*- coding:utf-8 -*- 
# author: Christal date: 2021/10/28

# ---------绘制散点图-------------
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 30)  # 30个[0,10)之间的等差数列
noise = np.random.randn(30)  # 30个标准正态分布的元素
y1 = x ** 2 + 2 * noise #两个*表示平方
y2 = x ** 1 + 2 * noise
y3 = x ** 1.5 + 2 * noise

plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置字体为SimHei,以显示中文
plt.rc('font', size=14)  # 设置字体大小
plt.figure(figsize=(6, 4))  # 设置画布

#绘制散点图
plt.figure(1,figsize=(6, 4))
plt.scatter(x, y1, marker='o')
plt.scatter(x, y2, marker='*')
plt.scatter(x, y3, marker='^')
plt.title('散点图')
plt.legend(['y1', 'y2', 'y3'])
plt.xlabel('x')
plt.ylabel('y')
plt.show()  # 显示图片

#绘制折线图
plt.figure(2)
plt.plot(x, y1, color='r',linestyle='-')
plt.plot(x, y2,  color='b',linestyle='--')
plt.plot(x, y3,  color='g',linestyle='-.')
plt.title('折线图')
plt.legend(['y1', 'y2', 'y3'])
plt.xlabel('x')
plt.ylabel('y')
plt.show()  # 显示图片

#绘制点线图
plt.figure(3)
plt.plot(x, y1, color='r',linestyle='-',marker='o')
plt.plot(x, y2,  color='b',linestyle='--',marker='*')
plt.plot(x, y3,  color='g',linestyle='-.',marker='^')
plt.title('点线图')
plt.legend(['y1', 'y2', 'y3'])
plt.xlabel('x')
plt.ylabel('y')
plt.show()  # 显示图片

#绘制柱状图
plt.figure(4)
plt.bar([0,1,2],[np.sum(y1),np.sum(y2),np.sum(y3)],width=0.5)
plt.title('柱状图')
labels=['y1的和','y2的和','y3的和']
plt.xlabel('数据系列y')
plt.ylabel('数据系列y的和')
plt.xticks(range(3),labels) #横轴的刻度与标签对准
plt.show()  # 显示图片

#绘制叠柱状图
plt.figure(5)
plt.bar(x,y1,width=0.2)
plt.bar(x,y2,width=0.2,bottom=y1)
plt.bar(x,y3,width=0.2,bottom=y1+y2,color='red')
plt.title('叠柱状图')
labels=['y1的和','y2的和','y3的和']
plt.xlabel('x')
plt.ylabel('y')
plt.legend(['y1','y2','y3'])
plt.show()  # 显示图片

#绘制水平叠柱状图
plt.figure(6)
plt.barh(x,width=y1,height=0.2)
plt.barh(x,width=y2,height=0.2,left=y1)
plt.barh(x,width=y3,height=0.2,left=y1+y2,color='red')
plt.title('水平叠柱状图')
plt.xlabel('y')
plt.ylabel('x')
plt.legend(['y1','y2','y3'])
plt.show()  # 显示图片

#绘制饼状图
plt.figure(7)
plt.pie([np.sum(y1),np.sum(y2),np.sum(y3),],labels=labels,autopct='%1.1f%%') #绘制饼图
plt.title('饼图')
plt.show()

#绘制分离饼状图
plt.figure(8)
plt.pie([np.sum(y1),np.sum(y2),np.sum(y3),],
        explode=(0,0,0.1),labels=labels,
        autopct='%1.1f%%',shadow=True) #绘制饼图
plt.title('分离饼图')
plt.show()

#绘制子图
plt.figure(9)
plt.rcParams['axes.unicode_minus']=False #设置坐标刻度能显示负数
p=plt.figure(figsize=(12,12))
norml_1=np.random.randn(1000)#生成1000个标准正态分布的元素的数组
ax1=p.add_subplot(2,2,1)
plt.hist(norml_1,  bins=50)#绘制直方图,分箱数是50
plt.title('直方图(频数)')

ax1=p.add_subplot(2,2,2)
labels=['数据系列y1','数据系列y2','数据系列y3']  #设置表亲
plt.boxplot([y1,y2,y3],notch=True,labels=labels,meanline=True)
plt.title('箱线图')
plt.xlabel('数据系列y')
plt.ylabel('数据系列y的值')

ax1=p.add_subplot(2,2,3)
plt.pie([np.sum(y1),np.sum(y2),np.sum(y3),],
        explode=(0,0,0.1),labels=labels,
        autopct='%1.1f%%',shadow=True) #绘制饼图
plt.title('分离饼图')

ax1=p.add_subplot(2,2,4)
plt.bar([0,1,2],[np.sum(y1),np.sum(y2),np.sum(y3)],width=0.5)
plt.title('柱状图')
labels=['y1的和','y2的和','y3的和']
plt.xlabel('数据系列y')
plt.ylabel('数据系列y的和')
plt.xticks(range(3),labels) #横轴的刻度与标签对准
plt.show()  # 显示图片

# ------------保存图片-------------------
# import os
# path = 'D:\\202109\\Programs\\python\\Execrises\\001\\graph\\'
#
# if not os.path.exists(path):
#     os.makedirs(path)
#
# plt.savefig(path + 'scatter.jpg')  # 保存图片
# plt.show()  # 显示图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清韵逐梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值