python学习之 Matplotlib基础绘图

Matplotlib基础绘图

因为某些不可抗力原因哈,被迫的要去学下python的基本绘图功能,将一份文件读取完毕后进行一系列的操作变成一张漂亮的二维图,当然也可以设置时间来进行动态的一个展示。
要是在学习这个之前呢,我们还得先学习pandas,来进行文件的读取,比如txt,csv文件等等。

pandas

  • pandas先导入一个包哈
import pandas as pd
  • as pd 是用于做个别名,后面使用到的pandas可以使用pd.方法来运行。
  • 好了哈,这里主要就是介绍pandas的一个方法,就是 pd.read_csv 方法哈
  • 这个可以用于 读取txt,csv文件 ,还可以对数据来做一些相对应的设置哈。

在这里插入图片描述

  • 如图,我们可以看到哈,我们对文档里面的数据设置了 以 逗号 分割开的,并且我们没有标题行。全都是数据哈。

在这里插入图片描述

  • 看下相关的参数和设置哈。

read_toexcel函数

  • 该方法可以对excel来进行读取哈,使用方法和csv差不多,就是多了一个分表的指定的操作,
  • 因为excel中默认有三个表满,我们需要指定一下。

在这里插入图片描述

有了这些知识哈,我们就可以正式进入matplotlib 绘图哈

绘画流程

在这里插入图片描述

创建画布与创建子图

  • 第一部分主要是构建出来一张空白的画布,并可以选择是否将整个画布划分成为多个部分,方便在同一幅画上绘制多个图形的情况。最简单的绘图其实还可以省略第一部分,直接在默认的画布上进行绘制,但是不推荐哈。

在这里插入图片描述

  • 创建画布后就是要添加画布的内容了哈

例如一些: 标题、坐标轴名称、绘制图形等等步骤哈,他们之间的设置是没有先后顺序的。

在这里插入图片描述

  • 来看下设置的方式哈。

"格式控制字符串"最多可以包括三部分, “颜色”, “点型”, “线型”

在这里插入图片描述

有了这个我们来看看哈。

在这里插入图片描述

  • 字典,通过转换也是可以试别的

在这里插入图片描述

  • 列表,我们也是可以的。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

color=['b','g','r','c','m','y','k','w']
linestyle=['-','--','-.',':']
dic1=[[0,1,2],[3,4,5]]
x=pd.DataFrame(dic1)
dic2=[[2,3,2],[3,4,3],[4,5,4],[5,6,5]]
y=pd.DataFrame(dic2)
# 循环输出所有"颜色""线型"
for i in range(2):
    for j in range(4):
        plt.plot(x.loc[i],y.loc[j],color[i*4+j]+line_style[j]) 
plt.show()
  • 当我们出现xy的数量不匹配的时候,可以使用循环来进行打印哈,设置行号和列号即可。

在这里插入图片描述

  • 其中loc参数表示位置哈,1表示右上角。可以调整的哈
位置字符串位置代码
最好的事务0
右上角1
左上2
左下3
右下4
5
中左6
中右7
下中心8
上中心9
中央10
  • 当我们向图面上进行设计中文的时候,可能会报错哈,
  • 我们需要添加设置上中文显示才行哈
#显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

加上这两句话就完事了。

散点图 scatter

import time

import numpy as np
import matplotlib.pyplot as plt

# 时间戳
np.random.seed(int(time.time()))

N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = (50 * np.random.rand(N))**2

plt.figure(figsize=[10,8])
plt.scatter(x,y,s=area,c=colors,alpha=0.5)  # 半透明

plt.show()

在这里插入图片描述

条形图

import matplotlib.pyplot as plt

import numpy as np

# 完成简单的条形图展现不同的电影票房之间的对比
plt.figure(figsize=(20, 8), dpi=80)

#显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

# 准备电影的名字以及电影的票房数据
movie_name = ['雷神3:诸神黄昏','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴','降魔传','追捕','七十七天','密战','狂兽','其它']
y = [73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222]
# 放进横坐标的数字列表
x = range(len(y))

# 画出条形图
plt.bar(x, y, width=0.5, color=['b','r','g','y','c','m','y','k','c','g','g'])

# 修改刻度名称
plt.xticks(x, movie_name)

plt.show()

在这里插入图片描述

import matplotlib.pyplot as plt

plt.figure(figsize=(20, 8), dpi=80)

#显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

movie_name = ['雷神3:诸神黄昏','正义联盟','寻梦环游记']

first_day = [10587.6,10062.5,1275.7]
first_weekend=[36224.9,34479.6,11830]

x = range(len(movie_name))

# 画出柱状图
plt.bar(x, first_day, width=0.2, label="首日票房")
# 首周柱状图显示的位置在首日的位置右边
plt.bar([i+0.2 for i in x], first_weekend, width=0.2, label="首周票房")

# 显示X轴中文,固定在首日和首周的中间位置
plt.xticks([i+0.1 for i in x], movie_name,size=33)
plt.legend(loc=1)

plt.show()

在这里插入图片描述

饼图 pie

import matplotlib.pyplot as plt

#显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False


labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)

plt.figure(figsize=[6,4])
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
        shadow=True, startangle=90)
# plt.axis('equal')


plt.show()

在这里插入图片描述

溜了溜了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

木木不会

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

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

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

打赏作者

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

抵扣说明:

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

余额充值