数据可视化工具--matplotlib的使用

今天简要学习matplotlib库对数据进行可视化的简单操作。

今天要完成三个目标:

画散点图,

柱状图,

多图合并。

1.matplotlib的基本操作

import matplotlib.pyplot as plt
import numpy as np
#基本用法
x = np.linspace(-1,1,50)
y1 = 2*x + 1
plt.plot(x,y1)
plt.show()

输出结果为:

2.figure的使用

import matplotlib.pyplot as plt
import numpy as np
#figure图像
x = np.linspace(-1,1,50)
y1 = 2*x + 1
y2 = 3*x + 5

plt.figure(num=1,figsize=(8,5))
plt.plot(x,y1)

plt.figure(num=2,figsize=(10,4))
plt.plot(x,y2)

plt.show()

输出结果会是两个不同的图像,一个plt.figure()就是一个图像的模块。在plt.plot中还可以设置颜色,线条宽度,以及线条样式等等。

比如:

plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')

输出结果会为:

就改变了默认了形式。

3.设置坐标轴

在上面程序的基础上,加入坐标,设置坐标轴要显示的范围,以及xy轴的名字。
import matplotlib.pyplot as plt
import numpy as np

#figure图像
x = np.linspace(-1,1,50)
y1 = 2*x + 1
y2 = 3*x + 5

plt.figure(num=1,figsize=(8,5))
plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')
plt.xlim((-1,0.5))
plt.ylim((1,2))
plt.xlabel('xxxx')
plt.ylabel('yyyy')
plt.show()


结果如图所示:

入果想要改动坐标轴的范围可以使用如下语句:

new_ticks = np.linspace(-1,1,10)
plt.xticks(new_ticks)

这样x轴的范围就被改动了。y轴同理。

 

如果想在y轴上加入如下图所示的效果,也可以使用plt.yticks()。

只需要在上述程序中加入:

plt.yticks([1,1.5,2],['bad','ok','good'])即可得到上述效果。

坐标轴图中一共有四根,left,right,bottom,top。可以对其进行删除,换色,换位置等操作。

ax = plt.gca()#获取整个图
ax.spines['right'].set_color('none')#将边框设置为无色
ax.spines['top'].set_color('none')

想把坐标轴挪动到需要的位置,如图。把x轴移动到了y轴1.5的位置作为坐标原点。

ax.xaxis.set_ticks_position('bottom')#将x轴移动
ax.spines['bottom'].set_position(('data',1.5))#outward,axes(按照不同的标准定位,data是其中一个标准。)

4.设置图例

有的时候图像上不止有一根线,为了区分和标注,得生成图例,以便于分析图像。

import matplotlib.pyplot as plt
import numpy as np

#figure图像
x = np.linspace(-1,1,50)
y1 = 2*x + 1
y2 = 3*x + 5

plt.figure(num=1,figsize=(8,5))
plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--',label='up')
plt.plot(x,y2,color='blue',linewidth=0.5,label='down')
plt.xlabel('xxxx')
plt.ylabel('yyyy')

plt.legend(loc='best')#生成图例,best的意思是能够让图例自动寻找一个最好的位置。
plt.show()

结果如下图:

5.散点图

绘制散点图需要使用到scatter这个方法。

import numpy as np
import matplotlib.pyplot as plt

x = np.random.random(30)
y = np.random.random(30)

plt.scatter(x,y)
plt.show()

生成的散点图如下:

还可以根据值的不同,生成不同的颜色。

import numpy as np
import matplotlib.pyplot as plt

x = np.random.normal(0,1,1024)
y = np.random.normal(0,1,1024)
t = np.arctan2(y,x)

plt.scatter(x,y,s=75,c=t,alpha=0.5)#alpha是透明度的意思
plt.xlim((0,1.5))
plt.ylim((0,1.5))
plt.xticks(())#隐藏所有的ticks
plt.yticks(())

plt.show()

运行结果是:

是不是很漂亮呀~

 

6.柱状图

柱状图,需要用到bar()这个方法。

import numpy as np
import matplotlib.pyplot as plt

# x = np.random.normal(0,1,1024)
# y = np.random.normal(0,1,1024)
# t = np.arctan2(y,x)

n = 12
x = np.arange(n)
y1 = (1-x/float(n))*np.random.uniform(0.5,1.0,n)

plt.bar(x,+y1,facecolor='#ff9999',edgecolor='white')

for x,y in zip(x,y1):
    plt.text(x + 0.4,y + 0.05,'%.2f' %y,ha = 'center',va='top')

plt.xlim((-.5,n))
plt.ylim((-1.25,1.25))
plt.xticks(())#隐藏所有的ticks
plt.yticks(())
plt.show()

 

运行结果是:

7.subplot多合一显示

要在一张图中画多个图形,要使用到subplot()。

import numpy as np
import matplotlib.pyplot as plt

plt.figure()

plt.subplot(2,2,1)#两行两列 第一个位置的图
plt.plot([0,1],[0,1])

plt.subplot(2,2,2)#两行两列 第2个位置的图
plt.plot([0,1],[0,1])

plt.subplot(2,1,2)#前面的把第一行画满之后,要占用两行中的第二行,外加12列都要占用。这里是有点绕弯的。
plt.plot([0,1],[0,1])

plt.show()

结果如图所示。

以上是matplotlib的简单使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值