个人昵称:lxw-pro
个人主页:欢迎关注 我的主页
个人感悟: “失败乃成功之母”,这是不变的道理,在失败中总结,在失败中成长,才能成为IT界的一代宗师。
Python扩展库Matplotlib
依赖于扩展库NumPy
和标准库Tkinter
,
可以绘制多种形式的图形,包括折线图、散点图、饼图、柱状图、雷达图等等。
Python扩展库Matplotlib包括pylab、pyplot等绘图模块以及大量用于字体、颜色、图例等图形元素的管理与控制的模块。其中pylab
和pyplot
模块提供了类似于MATLAB的绘图接口,支持线条样式、字体属性、轴属性以及其他属性的管理和控制,可以使用非常简洁的代码绘制出优美的各种图案。
使用
pylab
或pyplot
绘图的一般过程:
# 折线图
import pandas as pd
import pylab as plt
plt.rc('font', family='SimHei') # 用来正常显示中文标签
plt.rc('font', size=20) # 设置显示字体大小
# 同上
# plt.rcParams['font.sans-serif'] = ['SimHei']
# plt.rcParams['axes.unicode_minus'] = False
lxw = pd.read_excel('data2.xlsx', header=None)
tsj = lxw.values # 提取其中的数据
# print(tsj)
x = tsj[0] # 提取第一行的数据
y = tsj[1:] # 提取除第一行外的数据
plt.plot(x, y[0], '-*b', label='用水量')
plt.plot(x, y[1], '--pr', label='用电量')
plt.xlabel('月份')
plt.ylabel('每月用量')
plt.legend(loc='upper left')
plt.grid()
plt.show()
# 柱状图
import pandas as pd
import pylab as plt
# 用来正常显示中文标签
plt.rc('font', family='SimHei')
plt.rc('font', size=20)
lxw2 = pd.read_excel('data2.xlsx', header=None)
sz = lxw2.T
sz.plot(kind='bar')
plt.legend(['用水量', '用电量'])
plt.xticks(range(6), sz[0], rotation=0)
plt.ylabel('用量')
plt.show()
# 子图
import numpy as np
import pylab as plt
# plt.rc('text', usetex=True)
y1 = np.random.randint(2, 6, 6)
y1 = y1/sum(y1)
plt.subplot(2, 2, 1)
su = ['Python', 'Java', 'MySQL', 'C', 'Math', 'English']
plt.barh(su, y1)
plt.subplot(222)
plt.pie(y1, labels=su)
plt.subplot(212)
x2 = np.linspace(0.01, 10, 100)
y2 = np.sin(10*x2)/x2
plt.plot(x2, y2)
plt.xlabel('$x$')
plt.ylabel('$\\mathrm{sin}(10x)/x$')
plt.show()
——————————————————————————————————————————
# 三维曲线
import pylab as plt
import numpy as np
swx = plt.axes(projection='3d')
z = np.linspace(-50, 50, 1000)
x = z ** 2 * np.sin(z)
y = z ** 2 * np.cos(z)
swx.plot(x, y, z, 'b')
plt.show()
# 三维曲面图
import pylab as plt
import numpy as np
swt = plt.axes(projection='3d')
x = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, x)
z = 50 * np.sin(x+y)
swt.plot_surface(x, y, z, color='r')
plt.show()
# 三维表面图
import pylab as plt
import numpy as np
swb = plt.axes(projection='3d')
x = np.arange(-8, 8, 0.25)
y = np.arange(-8, 8, 0.25)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2+y**2))
tx = swb.plot_surface(x, y, z, cmap='coolwarm')
plt.colorbar(tx)
plt.show()
生活就是这样,脚长在自己身上,往前走就对了,直到向往的风景,变成走过的地方!
点赞,你的认可是我创作的
动力
!
收藏,你的青睐是我努力的方向
!
评论,你的意见是我进步的财富
!
关注,你的喜欢是我长久的坚持
!
欢迎关注微信公众号【程序人生6】,一起探讨学习哦!!!