码迷,mamicode.com
首页 > 其他好文 > 详细

matplotlib常用操作

时间:2018-10-18 22:00:02      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:import   temp   坐标轴   form   编号   技术   二次   类型   normal   

1.根据坐标点绘制:

import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,2,3,4,5,6,7,8])
y = np.array([3,5,7,6,2,6,10,15])
plt.plot(x,y,r)# 折线 1 x 2 y 3 color
plt.plot(x,y,g,lw=10)# 4 line w
# 折线 饼状 柱状
x = np.array([1,2,3,4,5,6,7,8])
y = np.array([13,25,17,36,21,16,10,15])
plt.bar(x,y,0.2,alpha=1,color=b)# 5 color 4 透明度 3 0.9
plt.show()

技术分享图片

import matplotlib.pyplot as plt
import numpy as np

#从-1-----1之间等间隔采66个数.也就是说所画出来的图形是66个点连接得来的
#注意:如果点数过小的话会导致画出来二次函数图像不平滑
x = np.linspace(-1, 1,66)
# 绘制y=2x+1函数的图像
y = 2 * x + 1
plt.plot(x, y)
plt.show()

# 绘制x^2函数的图像
y = x**2
plt.plot(x, y)
plt.show()

技术分享图片

figure的使用:

"""
figure的使用
"""
import matplotlib.pyplot as plt
import numpy as np
# 
x = np.linspace(-1, 1, 50)


# figure 1
y1 = 2 * x + 1
plt.figure()
plt.plot(x, y1)


# figure 2
y2 = x**2
plt.figure()
plt.plot(x, y2)


# figure 3,指定figure的编号并指定figure的大小, 指定线的颜色, 宽度和类型
#一个坐标轴上画了两个图形
y2 = x**2
plt.figure(num = 5, figsize = (4, 4))
plt.plot(x, y1)
plt.plot(x, y2, color = red, linewidth = 1.0, linestyle = --)
plt.show()

一共会画出三张图,前两张和上面的简单案例画出来的两张一样。第三张: 

技术分享图片

技术分享图片

设置坐标轴:

import matplotlib.pyplot as plt
import numpy as np

# 绘制普通图像
x = np.linspace(-1, 1, 50)
y1 = 2 * x + 1
y2 = x**2

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

# 设置坐标轴的取值范围
plt.xlim((-1, 1))
plt.ylim((0, 3))

# 设置坐标轴的lable
#标签里面必须添加字体变量:fontproperties=‘SimHei‘,fontsize=14。不然可能会乱码
plt.xlabel(u这是x轴,fontproperties=SimHei,fontsize=14)
plt.ylabel(u这是y轴,fontproperties=SimHei,fontsize=14)

# 设置x坐标轴刻度, 之前为0.25, 修改后为0.5
#也就是在坐标轴上取5个点,x轴的范围为-1到1所以取5个点之后刻度就变为0.5了
plt.xticks(np.linspace(-1, 1, 5))
plt.show()

技术分享图片

# 获取当前的坐标轴, gca = get current axis
ax = plt.gca()
# 设置右边框和上边框
ax.spines[right].set_color(none)
ax.spines[top].set_color(none)
# 设置x坐标轴为下边框
ax.xaxis.set_ticks_position(bottom)
# 设置y坐标轴为左边框
ax.yaxis.set_ticks_position(left)
# 设置x轴, y周在(0, 0)的位置
ax.spines[bottom].set_position((data, 0))
ax.spines[left].set_position((data, 0))

技术分享图片

 

绘制散点图:

import numpy as np
import matplotlib.pyplot as plt

# 数据个数
n = 1024
# 均值为0, 方差为1的随机数
x = np.random.normal(0, 1, n)
y = np.random.normal(0, 1, n)

# 计算颜色值
color = np.arctan2(y, x)
# 绘制散点图
plt.scatter(x, y, s = 75, c = color, alpha = 0.5)
# 设置坐标轴范围
plt.xlim((-1.5, 1.5))
plt.ylim((-1.5, 1.5))

# 不显示坐标轴的值
plt.xticks(())
plt.yticks(())

plt.show()

技术分享图片

 

绘制柱状图:

import matplotlib.pyplot as plt
import numpy as np

# 数据数目
n = 10
x = np.arange(n)
# 生成数据, 均匀分布(0.5, 1.0)之间
y1 = (1 - x / float(n)) * np.random.uniform(0.5, 1.0, n)
y2 = (1 - x / float(n)) * np.random.uniform(0.5, 1.0, n)

# 绘制柱状图, 向上
plt.bar(x, y1, facecolor = blue, edgecolor = white)
# 绘制柱状图, 向下
plt.bar(x, -y2, facecolor = green, edgecolor = white)


temp = zip(x, y2)
# 在柱状图上显示具体数值, ha水平对齐, va垂直对齐
for x, y in zip(x, y1):
    plt.text(x + 0.05, y + 0.1, %.2f % y, ha = center, va = bottom)

for x, y in temp:
    plt.text(x + 0.05, -y - 0.1, %.2f % y, ha = center, va = bottom)

# 设置坐标轴范围
plt.xlim(-1, n)
plt.ylim(-1.5, 1.5)
# 去除坐标轴
plt.xticks(())
plt.yticks(())
plt.show()

技术分享图片

 

matplotlib常用操作

标签:import   temp   坐标轴   form   编号   技术   二次   类型   normal   

原文地址:https://www.cnblogs.com/pythonlearing/p/9812948.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!