赞
踩
目录
- 1.首先给定10个数据并用x与y相表示。
- 2.调用scatter函数来进行散点图的绘制。
- 3.color表示颜色,marker表示线形,linewidths表示线宽。
- #%%
- #数学建模简单入手Python绘图
- import matplotlib.pyplot as plt
- #1.matplotlib和seaborn库的使用
- #1.1.scatter函数绘制散点图
- x=[1,2,3,4,5,6,7,8,9,10]
- y=[5.1,4.5,9.2,1.3,7.8,3.4,4.5,6.8,7.0,1.2]
- plt.scatter(x,y,color='r',marker='*',linewidths=8)
'运行
- 1.首先给定x的取值范围
- 2.再简单不加修饰绘制两个函数
- 3.改变图像的线形和颜色
- 4.对于坐标轴进行美化处理
- 5.改变坐标轴中3.14并且用Π来进行取代
- #%%
- #1.2.绘制折线统计图
- import numpy as np
- import matplotlib.pyplot as plt
- x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)
- first_fun=np.cos(x)+np.sin(x)
- second_fun=np.sin(x)-np.cos(x)
- first_fun=first_fun+np.random.rand(256)*0.4
- second_fun=second_fun+np.random.rand(256)*0.4
- #设置图像的分辨率为
- plt.rcParams['figure.dpi'] = 100
- #基础不加修改的绘制图片
- plt.plot(x,first_fun)
- plt.plot(x,second_fun)
- #进阶改变线型和颜色的绘图
- plt.plot(x,first_fun,'gs--',linewidth=0.6,markersize=3)
- plt.plot(x,second_fun,color='b',linewidth=0.8,markersize=2)
- #继续对坐标轴进行一个美化
- x_min=x.min()
- y_min=first_fun.min()
- x_max=x.max()
- y_max=first_fun.max()
- dx=(x_max-x_min)*0.4
- dy=(y_max-y_min)*0.4
- plt.xlim(x_min-dx,x_max+dx)
- plt.ylim(y_min-dy,y_max+dy)
- plt.xticks([-np.pi*2,-np.pi*1.5,-np.pi,-np.pi*0.5,0,np.pi*0.5,np.pi,np.pi*1.5,np.pi*2])
- plt.yticks([-1,-1.5,0,1,1.5])
- #将3.14换成兀
- plt.xticks([-np.pi*2,-np.pi*3/2,-np.pi, -np.pi/2, 0, np.pi/2, np.pi,np.pi*1.5,np.pi*2],[r'$-2\pi$',r'$-3/2\pi$',r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$',r'$3/2\pi$',r'$2\pi$'])
- plt.yticks([-1, 0, +1],[r'$-1$', r'$0$', r'$+1$'])
- plt.show()

- 1.首先建立一块能够绘制四张图片的幕布
- 2.然后进行第一张图片的绘制和信息的标注
- 3.然后进行第二张图片的绘制和信息的标注
- 4.然后进行第三张图片的绘制和信息的标注
- 5.然后进行第四张图片的绘制和信息的标注
- 6.最后再利用函数将其的变得紧凑合适
- #%%
- #1.3.绘制柱形图
- import matplotlib.pyplot as plt
- import numpy as np
- np.random.seed(19680801)
- e_bins=10
- x=np.random.randn(1000,3)
- #设置分辨率
- plt.rcParams['figure.dpi'] = 200 #分辨率
- #设置多图像的图片位置
- fig, ((ax0, ax1), (ax2, ax3)) = plt.subplots(nrows=2, ncols=2)
- #设置颜色和图标
- #绘制第一张图1/4
- colom0=['red','tan','lime']
- ax0.hist(x,e_bins,density=True,histtype='bar',color=colom0,label=colom0)
- ax0.legend(prop={'size': 10})#设置图列的大小为10
- ax0.set_title('bars with legend')#设置图片标题名字
- #绘制第二张图2/4
- colom1=['Bob','Jack','Lucy']
- ax1.hist(x,e_bins,density=True,histtype='bar',stacked=True,label=colom1)
- ax1.legend(prop={'size':10})
- ax1.set_title("stack bar")
- #绘制第三张图3/4
- colom2=['aaa','bbb','ccc']
- ax2.hist(x,e_bins,histtype='step',stacked=True,fill=False,label=colom2)
- ax2.legend(prop={'size':10})
- ax2.set_title("unfilled stacked bar")
- #绘制第四张图4/4
- colom3=['figure1','figure2','figure3']
- multi= [np.random.randn(n) for n in [10000, 5000, 2000]]
- ax3.hist(multi, e_bins, histtype='bar',label=colom3)
- ax3.legend(prop={'size':10})
- ax3.set_title('different sample example')
- #进行一下图片的调整
- fig.tight_layout()
- plt.show()
'运行
- 1.建立一块能够同时绘制三张图大小的幕布
- 2.创建并且给定数据及其取值范围
- 3.绘制中心第一张散点图
- 4.绘制上方和右方的条形统计图
- 5.对于冲突的坐标给予隐藏
- 6.再次调整并且美化轴间的宽度
- #%%
- #1.4.多种图片的结合
- #进行库文件的引用
- import numpy as np
- import matplotlib.pyplot as plt
- from mpl_toolkits.axes_grid1 import make_axes_locatable
-
- #给定足够多的数据点
- np.random.seed(19680801)
-
- #给定随机的x与y的区间值
- x = np.random.randn(1000)
- y = np.random.randn(1000)
-
- #创建绘图幕布
- fig, ax = plt.subplots(figsize=(5.5, 5.5))
-
- #中心散点图的绘制
- ax.scatter(x, y,marker = 'o',alpha = 0.1,color = "y")
- ax.set_aspect(1.)
-
- #再创建新两张图片
- divider = make_axes_locatable(ax)
- #给定两张图片的宽高和位置
- ax_histx = divider.append_axes("top", 1.2, pad=0.1, sharex=ax)
- ax_histy = divider.append_axes("right", 1.2, pad=0.1, sharey=ax)
-
- #隐藏上图的x坐标
- ax_histx.xaxis.set_tick_params(labelbottom=False)
- #隐藏下图的y坐标
- ax_histy.yaxis.set_tick_params(labelleft=False)
-
- #进行调整x的距离
- binwidth = 0.25
- xymax = max(np.max(np.abs(x)), np.max(np.abs(y)))
- lim = (int(xymax/binwidth) + 1)*binwidth
- #开始绘制图片
- bins = np.arange(-lim, lim + binwidth, binwidth)
- ax_histx.hist(x, bins=bins,alpha = 0.6,color = "b",rwidth = 0.8)
- ax_histy.hist(y, bins=bins, orientation='horizontal',alpha = 0.6,color = "r",rwidth = 0.8)
-
- #确定条形统计的xy区间范围
- ax_histx.set_yticks([0, 50, 100])
- ax_histy.set_xticks([0, 50, 100])
-
- plt.show()
'运行
- #%%
- #数学建模简单入手Python绘图
- import matplotlib.pyplot as plt
- #1.matplotlib和seaborn库的使用
- #1.1.scatter函数绘制散点图
- x=[1,2,3,4,5,6,7,8,9,10]
- y=[5.1,4.5,9.2,1.3,7.8,3.4,4.5,6.8,7.0,1.2]
- plt.scatter(x,y,color='r',marker='*',linewidths=8)
- #%%
- #1.2.绘制折线统计图
- import numpy as np
- import matplotlib.pyplot as plt
- x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)
- first_fun=np.cos(x)+np.sin(x)
- second_fun=np.sin(x)-np.cos(x)
- first_fun=first_fun+np.random.rand(256)*0.4
- second_fun=second_fun+np.random.rand(256)*0.4
- #设置图像的分辨率为
- plt.rcParams['figure.dpi'] = 100
- #基础不加修改的绘制图片
- plt.plot(x,first_fun)
- plt.plot(x,second_fun)
- #进阶改变线型和颜色的绘图
- plt.plot(x,first_fun,'gs--',linewidth=0.6,markersize=3)
- plt.plot(x,second_fun,color='b',linewidth=0.8,markersize=2)
- #继续对坐标轴进行一个美化
- x_min=x.min()
- y_min=first_fun.min()
- x_max=x.max()
- y_max=first_fun.max()
- dx=(x_max-x_min)*0.4
- dy=(y_max-y_min)*0.4
- plt.xlim(x_min-dx,x_max+dx)
- plt.ylim(y_min-dy,y_max+dy)
- plt.xticks([-np.pi*2,-np.pi*1.5,-np.pi,-np.pi*0.5,0,np.pi*0.5,np.pi,np.pi*1.5,np.pi*2])
- plt.yticks([-1,-1.5,0,1,1.5])
- #将3.14换成兀
- plt.xticks([-np.pi*2,-np.pi*3/2,-np.pi, -np.pi/2, 0, np.pi/2, np.pi,np.pi*1.5,np.pi*2],[r'$-2\pi$',r'$-3/2\pi$',r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$',r'$3/2\pi$',r'$2\pi$'])
- plt.yticks([-1, 0, +1],[r'$-1$', r'$0$', r'$+1$'])
- plt.show()
- #%%
- #1.3.绘制柱形图
- import matplotlib.pyplot as plt
- import numpy as np
- np.random.seed(19680801)
- e_bins=10
- x=np.random.randn(1000,3)
- #设置分辨率
- plt.rcParams['figure.dpi'] = 200 #分辨率
- #设置多图像的图片位置
- fig, ((ax0, ax1), (ax2, ax3)) = plt.subplots(nrows=2, ncols=2)
- #设置颜色和图标
- #绘制第一张图1/4
- colom0=['red','tan','lime']
- ax0.hist(x,e_bins,density=True,histtype='bar',color=colom0,label=colom0)
- ax0.legend(prop={'size': 10})#设置图列的大小为10
- ax0.set_title('bars with legend')#设置图片标题名字
- #绘制第二张图2/4
- colom1=['Bob','Jack','Lucy']
- ax1.hist(x,e_bins,density=True,histtype='bar',stacked=True,label=colom1)
- ax1.legend(prop={'size':10})
- ax1.set_title("stack bar")
- #绘制第三张图3/4
- colom2=['aaa','bbb','ccc']
- ax2.hist(x,e_bins,histtype='step',stacked=True,fill=False,label=colom2)
- ax2.legend(prop={'size':10})
- ax2.set_title("unfilled stacked bar")
- #绘制第四张图4/4
- colom3=['figure1','figure2','figure3']
- multi= [np.random.randn(n) for n in [10000, 5000, 2000]]
- ax3.hist(multi, e_bins, histtype='bar',label=colom3)
- ax3.legend(prop={'size':10})
- ax3.set_title('different sample example')
- #进行一下图片的调整
- fig.tight_layout()
- plt.show()
- #%%
- #绘制饼形条状统计图
- import matplotlib.pyplot as plt
- import numpy as np
- #设置分辨率为200
- plt.rcParams['figure.dpi'] = 200
- #生成随机种子数据
- np.random.seed(19680801)
- jiaodu=np.linspace(0,2*np.pi,15,endpoint=False)
- r=10*np.random.rand(15)
- width=np.pi/4*np.random.rand(15)
- colors = plt.cm.viridis(r/ 10.)
-
- ax=plt.subplot(111,projection='polar')
- ax.bar(jiaodu,r,width=width,bottom=0,color=colors,alpha=0.5)
- plt.show()
- #%%
- #1.4.多种图片的结合
- #进行库文件的引用
- import numpy as np
- import matplotlib.pyplot as plt
- from mpl_toolkits.axes_grid1 import make_axes_locatable
-
- #给定足够多的数据点
- np.random.seed(19680801)
-
- #给定随机的x与y的区间值
- x = np.random.randn(1000)
- y = np.random.randn(1000)
-
- #创建绘图幕布
- fig, ax = plt.subplots(figsize=(5.5, 5.5))
-
- #中心散点图的绘制
- ax.scatter(x, y,marker = 'o',alpha = 0.1,color = "y")
- ax.set_aspect(1.)
-
- #再创建新两张图片
- divider = make_axes_locatable(ax)
- #给定两张图片的宽高和位置
- ax_histx = divider.append_axes("top", 1.2, pad=0.1, sharex=ax)
- ax_histy = divider.append_axes("right", 1.2, pad=0.1, sharey=ax)
-
- #隐藏上图的x坐标
- ax_histx.xaxis.set_tick_params(labelbottom=False)
- #隐藏下图的y坐标
- ax_histy.yaxis.set_tick_params(labelleft=False)
-
- #进行调整x的距离
- binwidth = 0.25
- xymax = max(np.max(np.abs(x)), np.max(np.abs(y)))
- lim = (int(xymax/binwidth) + 1)*binwidth
- #开始绘制图片
- bins = np.arange(-lim, lim + binwidth, binwidth)
- ax_histx.hist(x, bins=bins,alpha = 0.6,color = "b",rwidth = 0.8)
- ax_histy.hist(y, bins=bins, orientation='horizontal',alpha = 0.6,color = "r",rwidth = 0.8)
-
- #确定条形统计的xy区间范围
- ax_histx.set_yticks([0, 50, 100])
- ax_histy.set_xticks([0, 50, 100])
-
- plt.show()
'运行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。