matplotlib初学笔记

tech2024-11-01  21

文章目录

各种图形绘制的函数。重要的一些小知识点。案例1:(1)绘制直线(2)绘制正余玄曲线(3)绘制柱状图(4)绘制饼图(5)绘制直方图(6)多个柱图绘制一张表,添加了图例(7)绘制等高线图 (8)绘制简单的三维图参考链接

各种图形绘制的函数。

折线图:plot 柱形图: bar 条形图: barh 散点图:scatter 直方图: hist 饼图:pie

等高线图:contour 流量图: Streamplot

重要的一些小知识点。

(1) plt.title:添加标题 plt.xlabel:添加x方向的标题 plt.ylabel:添加y方向的标题 plt.xticks:添加x方向的坐标 plt.yticks:添加y方向的坐标 plt.show:展示图形 plt.axis:修改x轴,y轴长度. plt.axis([0,10,0,10]) (2) 处理中文乱码:plt.rcParams[‘font.sans-serif’] = [‘SimHei’] (3) 添加颜色color属性:plt.plot(x,y,color=‘r’) r表示红色 修改线条宽度linewidth属性:plt.plot(x,y,linewidth=1.0) 第二种写法;plt.plot(x,y,‘color’,‘r’) plt.setp(lines,color=‘r’,linewidth=2.0) plt.setp(lines, ‘color’, ‘r’, ‘linewidth’, 2.0) (4)保存图片:plt.savefig(‘aa.jpg’) 默认是png的格式。 (5)subplot使用 (6)np.random.seed(0) 执行多次,每次获取的随机数都是一样的。 random6 = np.random.randn(500) # 生成标准正太分布 random7 = np.random.normal(-2,1,1000) # 生成标准正太分布 (7)折线图增加拐点 plt.plot(x, y1, marker=‘o’,ms=10) maker设置形状,ms设置大小 (8)plt.plot(x, y1, marker=‘o’, mec=‘r’, mfc=‘w’) mec设置颜色,mfc设置是否实心 (9)alpha 设置透明度。plt.bar(real_anme,reall_num1,alpha=0.5) (10)添加图例 plt.bar(x,reall_num1,alpha=0.5,width=width,label=real_name[0]) plt.legend() (11) bins 设置直方图的柱子数 plt.hist(random6,bins=5,alpha=0.5)

案例1:

(1)绘制直线
import matplotlib.pyplot as plt x = [2,3] y = [3,4] plt.plot(x,y) plt.show()
(2)绘制正余玄曲线
import matplotlib.pyplot as plt import numpy as np x = np.arange(0,6,0.1) y = np.sin(x) y1= np.cos(x) plt.plot(x,y) plt.plot(x,y) plt.show()
(3)绘制柱状图
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] x = ['一月','二月','三月','四月'] y = [4,5,8,7] # # plt.bar(x,y) plt.bar(x,y) plt.plot(x,y,color='r') plt.show()
(4)绘制饼图
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] men = 12545 women = 15423 man_per = men/(men+women) women_per = women/(men+women) paches,texts,autotexts = plt.pie([man_per,women_per],labels=['男{}'.format(men),'女{}'.format(women)],colors=['red','blue'],explode=(0,0.02),autopct='%0.1f%%') # 设置字体颜色 for text in autotexts: text.set_color('white') # 设置字体大小 for font in texts+autotexts: font.set_fontsize(20) plt.title('饼状图') plt.show()

(5)绘制直方图
import numpy as np import matplotlib.pyplot as plt # import pyecharts # # np.random.seed(20) random6 = np.random.randn(500) # 生成标准正太分布 random7 = np.random.normal(-2,1,1000) # plt.hist(random6,bins=5,alpha=0.5) # 分成5个柱子。 # plt.hist(random7,bins=5,alpha=0.5) # 分成5个柱子。 kwargs = dict(bins=100,alpha=0.8) plt.hist(random6,**kwargs) plt.hist(random7,**kwargs) # plt.rcParams['font.sans-serif'] = ['SimHei'] plt.title('直方图') plt.show()
(6)多个柱图绘制一张表,添加了图例
import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] real_name = ['第一步电影','第二部电影','第三步电影'] reall_num1 = [123,568,235] reall_num2 = [134,258,668] reall_num3 = [758,529,648] x = np.arange(len(real_name)) print(x) width = 0.3 plt.bar(x,reall_num1,alpha=0.5,width=width,label=real_name[0]) # label添加图例使用 plt.bar([i+width for i in x],reall_num2,alpha=0.5,width=width,label=real_name[1]) plt.bar([i+2*width for i in x],reall_num3,alpha=0.5,width=width,label=real_name[2]) plt.title('电影票房汇总') plt.xlabel('电影名称') plt.ylabel('对应票房') plt.xticks([i+width for i in x],real_name) plt.legend() # 这个是label一起添加图例 plt.show()
(7)绘制等高线图
import matplotlib.pyplot as plt import numpy as np x = np.linspace(-10,10,100) y = np.linspace(-10,10,100) # 计算x y相交的点 X,Y = np.meshgrid(x,y) # 计算Z点 Z = np.sqrt(X**2+Y**2) #绘制等高线图 plt.contour(X,Y,Z) # plt.contourf(X,Y,Z) plt.show()

(8)绘制简单的三维图

from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt X = [1,1,2,2] Y = [3,4,4,3] Z = [1,100,1,1] fig = plt.figure() # 创建一个3d的子图,放到figure画布里面 ax = Axes3D(fig) ax.plot_trisurf(X,Y,Z) plt.show()

参考链接

https://matplotlib.org/gallery.html https://wizardforcel.gitbooks.io/matplotlib-user-guide/content/3.1.html https://pyecharts.org/#/zh-cn/global_options

最新回复(0)