python: 绘图基础

目录

  • matplotlib绘图
    • 折线图
    • 散点图&条形图
    • 修改样式
    • 绘制子图
    • 子图-axes()
  • pandas绘图
  • 3D图

matplotlib绘图

折线图

import matplotlib.pyplot as plt
plt.plot([2,3,1,5,3,1]) #默认参数是Y轴
plt.show()
plt.savefig('zhexian.png')#保存图片

python: 绘图基础_第1张图片
多组数据绘图:

import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0., 4., 0.1)
plt.plot(t,t, t,t+2, t,t**2)  #3条
plt.show()

python: 绘图基础_第2张图片

散点图&条形图

import matplotlib.pyplot as plt
plt.scatter(range(7),[3,4,7,6,2,8,9]) #散点图
plt.bar(range(7),[3,4,7,6,2,8,9])  #条形图

python: 绘图基础_第3张图片python: 绘图基础_第4张图片

修改样式

(本想趁机认识一下流行的鼠尾草绿 ‘sage’, 结果报错了,是这里只能运用simple color吗)
注意图中显示中文的解决办法

import matplotlib.pyplot as plt
import numpy as np
#plot图例显示中文名字必须加上以下两行
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] #SimHei是黑体的意思

plt.figure(figsize = (8,6), dpi = 100)
t = np.arange(0., 4., 0.1)
plt.plot(t, t, color='red', linestyle='-', marker='*', linewidth=2, label='line 1')
plt.plot(t, t**2, color='pink', linestyle='', marker='*', linewidth=1, label='line 2')
plt.legend(loc = 'upper left') 
plt.title('举个例子啊')
plt.xlabel('X label')
plt.ylabel('Y label') 

python: 绘图基础_第5张图片
Matplotlib中的颜色、线条、标记样式汇总

绘制子图

subplot(行,列,第n幅图)
注意图中显示负值的解决办法

import matplotlib.pyplot as plt
import numpy as np
#解决图中无法产生负值的问题,加入以下两行
import matplotlib
matplotlib.rcParams['axes.unicode_minus'] =False

x = np.linspace(-np.pi,np.pi,300)
plt.figure(1) #默认创建
plt.subplot(211)  #第一个子图
plt.plot(x,np.sin(x),color = 'r')
plt.subplot(212) #第二个字图
plt.plot(x,np.cos(x),color = 'g')

python: 绘图基础_第6张图片
还有一种更为灵活的设置方法

x = np.linspace(-np.pi,np.pi,300)
fig, (ax0,ax1) = plt.subplots(2,1) #默认创建
ax0.plot(x,np.sin(x),color = 'r')#第一个子图
ax0.set_title('test 1')
plt.subplots_adjust(hspace = 0.5)#hspace垂直方向距离,wspace为水平方向距离
ax1.plot(x,np.cos(x),color = 'g')
ax1.set_title('test 2')

python: 绘图基础_第7张图片

子图-axes()

axes([left, bottom, width, heigh]) 参数范围为(0,1)

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi,np.pi,300)
plt.axes([0.1, 0.1, 0.8, 0.8])
plt.plot(x, np.sin(x), color = 'b')
plt.axes([0.3, 0.15, 0.4, 0.3])
plt.plot(x, np.cos(x), color = 'orange')

python: 绘图基础_第8张图片

pandas绘图

(简单介绍,有空再更新)

quotesdf.loc[:9,'close'].plot#0~9行(包括9),close列
quotesdf.loc[:9,['close','open'].plot#0~9行(包括9),close列和open列

3D图

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import LinearLocator, FormatStrFormatter
fig = plt.figure()
ax = fig.gca(projection='3d')
cmap = plt.get_cmap('RdYlBu_r')  # 设置色阶
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cmap)
# ax.contourf(X, Y, Z, zdir='z', offset=0, cmap=plt.cm.hot)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
# Add a color bar which maps values to colors.
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()

python: 绘图基础_第9张图片

你可能感兴趣的:(Python,python)