Python数据分析

Python数据可视化(1)

使用matplotlib库解决图形编辑问题,Python数据可视化第一周作业答案

题目

1.在同一幅图上绘制 [-2π, 2π] 范围内的正弦和余弦曲线。
2.自行下载一个股票数据文件,用pandas读入数据,绘制某段时间内的收盘价折线图。
3.一张图上分4个子图,分别绘制圆形、正方形、三角形和直线。
4.随机产生一组具有线性关系y= 3*x + 2+a的点坐标,a为-2与2之间的一个随机数,绘制散点图。
5.用数据集 [2,5,8,6] 绘制饼图,要加上百分比,并突显数据项8。
6.分别绘制x=[1,2,3]和y=[3,5,8]对应的柱形图,水平条形图,堆积柱形图。

1.在同一幅图上绘制 [-2π, 2π] 范围内的正弦和余弦曲线

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-2*np.pi, 2*np.pi)
y1=np.sin(x)
y2=np.cos(x)
plt.plot(x,y1)
plt.plot(x, y2)
plt.grid(True)
plt.show()

在这里插入图片描述

2.自行下载一个股票数据文件,用pandas读入数据,绘制某段时间内的收盘价折线图

网易财经主页
这里可以下载股票数据
具体方式:
在这里插入图片描述

import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_csv("E:/11111.csv",parse_dates=['日期'])
plt.plot(df.日期,df.收盘价)
plt.show()

在这里插入图片描述

3.一张图上分4个子图,分别绘制圆形、正方形、三角形和直线

import numpy as np
import matplotlib.pyplot as plt
'''绘制一个圆'''
fig=plt.figure()                 #创建一个Figure对象
ax1=fig.add_subplot(221)         #创建一个2行2列的图形的第一个子图
x=np.linspace(-2,2,50)           #[-2,2]之间生成50个x值
y=np.sqrt(4-x**2)                #上半圆函数
ax1.axis('equal')                #设置x,y轴比例相同
ax1.plot(x,y,x,-y)               #整个圆
'''绘制一个正方形'''
ax2=fig.add_subplot(222)        #第二个子图
x=[0,0,2,2,0]
y=[0,2,2,0,0]           #从[0,0],[0,2],[2,2],[2,0],[0,0]画一个闭合正方形
ax2.axis('equal')
ax2.plot(x,y)
'''绘制一个三角形'''
ax3=fig.add_subplot(223)
x=[0,2,4,0]
y=[1,2,1,1]            #绘制闭合三角形
ax3.plot(x,y)
'''绘制一条直线'''
ax4=fig.add_subplot(224)
x=np.arange(5)
ax4.plot(x,2*x)

在这里插入图片描述

4.随机产生一组具有线性关系y= 3*x + 2+a的点坐标,a为-2与2之间的一个随机数,绘制散点图

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-5,5,20)
y=3*x+2+(-2+np.random.rand(len(x))*4) #计算y值并加入随机干扰值
plt.scatter(x, y)

在这里插入图片描述

5.用数据集 [2,5,8,6] 绘制饼图,要加上百分比,并突显数据项8

import numpy as np
import matplotlib.pyplot as plt
data=np.array([2,5,8,6])
explode=[0,0,0.2,0]#定义饼图的标签,标签是列表
pie_lables=np.array(['2','5','8','6'])
plt.pie(data,explode=explode,radius=1.5,labels=pie_lables,autopct='%3.1f%%')
plt.show()

在这里插入图片描述

6.分别绘制x=[1,2,3]和y=[3,5,8]对应的柱形图,水平条形图,堆积柱形图

#柱形图
import numpy as np
import matplotlib.pyplot as plt
n=np.arange(3)
x=np.array([1,2,3])
y=np.array([3,5,8])
plt.bar(n,x,tick_label=(['a','b','c']),width=0.3)
plt.bar(n+0.3,y,width=0.3)
plt.show()

#堆积柱形图
import numpy as np
import matplotlib.pyplot as plt
n=np.arange(3)
x=np.array([1,2,3])
y=np.array([3,5,8])
plt.bar(n,x,tick_label=['a','b','c'],width=0.3)
plt.bar(n,y,bottom=x,width=0.3)
plt.show()

#水平柱形图
import numpy as np
import matplotlib.pyplot as plt
n=np.arange(3)
x=np.array([1,2,3])
y=np.array([3,5,8])
plt.barh(n,x,tick_label=(['a','b','c']),height=0.3)
plt.barh(n+0.3,y,height=0.3)
plt.show()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值