python学习4 matplotlib.pyplot学习

python day4 matplotlib.pyplot

numpy数组的保存读取(csv,txt等)

numpy数组的保存

import numpy
b = numpy.array([1, 2, 3])
print(b)
numpy.save("g", b)
a = numpy.load("g.npy")
print(a)

在这里插入图片描述
numpy把数组存储成csv文件以及读取

b = numpy.array([1,2,3])
print(b)
numpy.savetxt("b.csv",b)
# numpy读取csv文件
a = numpy.loadtxt("b.csv")
print(a)

在这里插入图片描述
numpy把数组存储成txt文件以及读取

b = numpy.array([1,2,3])
print(b)
numpy.savetxt("b.txt",b)
# 读取txt文件
a = numpy.loadtxt("b.txt")
print(a)

在这里插入图片描述
numpy中常用的统计函数

arr = np.arange(20).reshape(4,5)
print("arr",arr)

print("数组的求和",np.sum(arr))
print("数组纵轴求和",arr.sum(axis=0))
print("数组横轴求和",arr.sum(axis=1))
print("数组的均值",np.mean(arr))
print("数组纵轴方向求均值",arr.mean(axis=0))
print("数组横轴方向求均值",arr.mean(axis=1))

print("计算数组的标准差", np.std(arr))
print("计算数组的方差", np.var(arr))
print("计算数组的最小值", np.min(arr))
print("计算数组的最大值", np.max(arr))
print("找出最小值的索引", np.argmin(arr))
print("找出最大值的元素的索引", np.argmax(arr))

在这里插入图片描述
当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数

import numpy as np

np.random.seed(44)
arr = np.random.randint(1,10,size=(3,3))
print(arr)

# 横轴排序
arr.sort(axis=1)
print(arr)
# 纵轴排序
arr.sort(axis=0)
print(arr)

在这里插入图片描述

绘图

import matplotlib.pyplot as plt
import numpy as np

data = np.arange(0, 1, 0.1)
print(data)

plt.title('The title of the picture')  # 添加标题
plt.xlabel('x axis')  # 添加x轴的名称
plt.ylabel('y axis')  # 添加y轴的名称
plt.xlim((0, 1))  # 确定x轴的范围
plt.ylim((0, 1))  # 确定y轴的范围
plt.xticks([0, 0.2, 0.4, 0.6, 0.8, 1])  # 确定x轴的刻度
plt.yticks([0, 0.2, 0.4, 0.6, 0.8, 1])   # 确定y轴的刻度

plt.plot(data, data**2)  # 添加一条函数曲线
plt.plot(data, data**4)  # 添加一条函数曲线

plt.legend(['y=x^2','y=x^4'])
plt.savefig('p1.png')
plt.show()

在这里插入图片描述
在一个画布上画两个函数曲线图

import matplotlib.pyplot as plt
import numpy as np

data = np.arange(0,1,0.1)
#在一个画布上画两个函数曲线图
rad = np.arange(0, np.pi*2, 0.01) #设置一个数组范围
#画第一幅函数图像
p1 = plt.figure(figsize=(8,10),dpi=80) #这两个参数都决定了小大,左边是宽:长

ax1 = p1.add_subplot(2,1,1) #创建一个2行1列的子图,并开始绘制第一幅
plt.title('lines')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim((0,1))
plt.ylim((0,1))
plt.xticks([0,0.2,0.4,0.6,0.8,1])
plt.yticks([0,0.2,0.4,0.6,0.8,1])
plt.plot(data, data)
plt.plot(data, 2*data)

#第二幅子图
ax2 = p1.add_subplot(2,1,2) #创建一个2行1列的子图,并开始绘制第一幅
plt.title('sin/cos')
plt.xlabel('rad')
plt.ylabel('value')
plt.xlim((0,np.pi*2))
plt.ylim((-1,1))
plt.xticks([0, np.pi/2, np.pi*1.5, np.pi*2])
plt.yticks([-1, -0.5, 0, 0.5, 1])
plt.plot(rad, np.sin(rad)) #sin的函数曲线
plt.plot(rad, np.cos(rad)) #cos的函数曲线
plt.legend(['sin','cos'])
plt.savefig('sincos.png')
plt.show()

在这里插入图片描述
调节线条参数

# 调节线条参数
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 4*np.pi)  # 生成x轴
y = np.sin(x)
plt.plot(x,y,label="$sin(x)$")  # 绘制sin曲线图
plt.title("sin")
plt.savefig("sin.png")
plt.show()

# 修改rc参数
plt.rcParams['lines.linestyle'] = '-.'   # 线条形状
plt.rcParams['lines.linewidth'] = 3      # 线条宽度
plt.rcParams['lines.marker']='.'      # 点的形状
plt.plot(x,y,label='sin(x)')   # 绘制sin曲线图
plt.title('sin')
plt.savefig('sin.png')
plt.legend(['sin'])
plt.show()

"""
lines.linestyle  '-'(默认)  '--'  '-.'  ':'
lines.linewidth 0~10 默认1.5
lines.marker  'o'  'D'  'h'  '.'  ','  'S'  默认是None
lines.markersize 0~10 默认是1
"""

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

例:画一个(x+1)**2的图和一个(x+1)

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-2, 2, 0.01)
plt.title('lines')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim((-2,1))
plt.ylim((-1,2))
plt.xticks([-2,-1.5,-1,-0.5,0,0.5,1])
plt.yticks([-1,-0.5,0,0.5,1,1.5,2])
plt.plot(x, (x+1)**2)
plt.plot(x, x+1)
plt.show()

在这里插入图片描述
导入国名经济核算季度数据,作图

import numpy as np
import matplotlib.pyplot as plt

# 设置中文显
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
data = np.load('国民经济核算季度数据.npz',allow_pickle=True)
name = data['columns']
value = data['values']
print(name)
print(value)
plt.figure(figsize=(8,7))# 设置画布
# 写在一个plot里面,但是需要后面标记比如这样'gD:''
plt.plot(value[:, 0], value[:, 2],'gD:',
         value[:, 0], value[:, 3],'r.--',
         value[:, 0], value[:, 4],'b,-.')
plt.xlabel("xlabel")
plt.ylabel('GDP(10^8)')

plt.ylim((0,225000)) # 设置y轴范围
plt.xticks(range(0,70,4), value[range(0,70,4), 1], rotation=45)
plt.title('2000~2017 GDP in each quarter in the nation')
plt.show()

在这里插入图片描述
将国民经济核算季度数据读入到数组中,并转化为csv格式输出

import numpy as np
import matplotlib.pyplot as plt
data = np.load('国民经济核算季度数据.npz',allow_pickle=True)
name = data['columns']
values = data['values']
a=[1,2, 3]
print(type(values))
print(type(a))
# print(name)
# print(values[:,2])
value = np.vstack((name, values))

# print("横向组合",np.concatenate((name,values),axis=0))
np.savetxt("d.csv",value,delimiter=',',fmt = '%s')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值