# Pyplot教程
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import NullFormatter
"""对数轴和其他非线性轴
np.random.seed(19680801) # 1.控制重复数值
y = np.random.normal(loc=0.5, scale=0.4, size=1000) # 2.因为这里要分给四个子图
y = y[(y > 0) & (y < 1)]
y.sort()
x = np.arange(len(y))
plt.figure()
# linear
plt.subplot(221)
plt.plot(x, y)
plt.yscale('linear')
plt.title('linear')
plt.grid(True)
# log
plt.subplot(222)
plt.plot(x, y)
plt.yscale('log')
plt.title('log')
plt.grid(True)
# symmetric log
plt.subplot(223)
plt.plot(x, y - y.mean())
plt.yscale('symlog', linthreshy=0.01)
plt.title('symlog')
plt.grid(True)
# logit
plt.subplot(224)
plt.plot(x, y)
plt.yscale('logit')
plt.title('logit')
plt.grid(True)
# plt.gca()获取当前子图 并控制主刻度或小刻度标注的格式:没有格式
plt.gca().yaxis.set_minor_formatter(NullFormatter())
plt.subplots_adjust( # 调整子图布局
top=0.92, bottom=0.08,
left=0.10, right=0.95,
hspace=0.25,wspace=0.35)
plt.show()
"""
"""添加注释文字
ax = plt.subplot(111)
t = np.arange(0.0, 5.0, 0.01)
s = np.cos(2*np.pi*t)
line, = plt.plot(t, s, lw=2)
plt.annotate(# 注释文字
'local max', xy=(2, 1), xytext=(3, 1.5),
arrowprops=dict(facecolor='black', shrink=0.05),)
plt.ylim(-2, 2)
plt.show()
"""
"""在画板内添加文本提示
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
n, bins, patches = plt.hist(x, 50, density=1, facecolor='g', alpha=0.75)
plt.xlabel('Smarts')
plt.ylabel('Probability')
plt.title('Histogram of IQ')
plt.text(60, .025, r'$\mu=100,\ \sigma=15$')# 在某位置设置文本
plt.axis([40, 160, 0, 0.03]) # [xmin, xmax, ymin, ymax] 用来限制的
plt.grid(True)
plt.show()
"""
"""同一块画板,画多个图
names = ['group_a', 'group_b', 'group_c']
values = [1, 10, 100]
plt.figure(figsize=(9, 3))
plt.subplot(131)
plt.bar(names, values)
plt.subplot(132)
plt.scatter(names, values)
plt.subplot(133)
plt.plot(names, values)
plt.suptitle('Categorical Plotting')
plt.show()
"""
"""散点图
data = {'a': np.arange(50),
'c': np.random.randint(0, 50, 50),
'd': np.random.randn(50)}
data['b'] = data['a'] + 10 * np.random.randn(50)
data['d'] = np.abs(data['d']) * 100
plt.scatter('a', 'b', c='c', s='d', data=data)
plt.xlabel('entry a')
plt.ylabel('entry b')
plt.show()
"""
"""折线图或画点图
#plt.plot([1, 2, 3, 4]) # 画点,默认用线连接(第一种方式)
#plt.plot([1, 2, 3, 4], [1, 4, 9, 16])# 画点,默认用线连接(第二种方式)
#plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro') # 不用线连接,显示红色的点(第三种方式)
#plt.axis([0, 6, 0, 20]) # [xmin, xmax, ymin, ymax] 用来限制的
#t = np.arange(0., 5., 0.2) # 显示不同颜色和形状(第四种方式)
#plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()
"""
pylot绘图基础
最新推荐文章于 2024-05-17 17:03:12 发布