当前位置:   article > 正文

数学建模--Python绘图_数学建模图像怎么绘制

数学建模图像怎么绘制

目录

1.绘制散点图

  1.1.绘制过程解释

  1.2.绘制图像代码 

  1.3.绘制图像展示

 2.绘制折线统计图

  2.1.绘制过程解释

   2.2.绘制图像代码 

  2.3.绘制图像展示 

 3.绘制柱形图

  3.1.绘制图像解释

     3.2.绘制图像代码

   3.3.绘制图像展示 

 4.多种图形的综合绘制

   4.1.绘制图像解释

  4.2.绘制图像代码 

  4.3.绘制图像展示 

  5.源代码汇总展


1.绘制散点图

  1.1.绘制过程解释

  1. 1.首先给定10个数据并用x与y相表示。
  2. 2.调用scatter函数来进行散点图的绘制。
  3. 3.color表示颜色,marker表示线形,linewidths表示线宽。

  1.2.绘制图像代码 

  1. #%%
  2. #数学建模简单入手Python绘图
  3. import matplotlib.pyplot as plt
  4. #1.matplotlib和seaborn库的使用
  5. #1.1.scatter函数绘制散点图
  6. x=[1,2,3,4,5,6,7,8,9,10]
  7. y=[5.1,4.5,9.2,1.3,7.8,3.4,4.5,6.8,7.0,1.2]
  8. plt.scatter(x,y,color='r',marker='*',linewidths=8)
'
运行

  1.3.绘制图像展示

 2.绘制折线统计图

  2.1.绘制过程解释

  1. 1.首先给定x的取值范围
  2. 2.再简单不加修饰绘制两个函数
  3. 3.改变图像的线形和颜色
  4. 4.对于坐标轴进行美化处理
  5. 5.改变坐标轴中3.14并且用Π来进行取代

   2.2.绘制图像代码 

  1. #%%
  2. #1.2.绘制折线统计图
  3. import numpy as np
  4. import matplotlib.pyplot as plt
  5. x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)
  6. first_fun=np.cos(x)+np.sin(x)
  7. second_fun=np.sin(x)-np.cos(x)
  8. first_fun=first_fun+np.random.rand(256)*0.4
  9. second_fun=second_fun+np.random.rand(256)*0.4
  10. #设置图像的分辨率为
  11. plt.rcParams['figure.dpi'] = 100
  12. #基础不加修改的绘制图片
  13. plt.plot(x,first_fun)
  14. plt.plot(x,second_fun)
  15. #进阶改变线型和颜色的绘图
  16. plt.plot(x,first_fun,'gs--',linewidth=0.6,markersize=3)
  17. plt.plot(x,second_fun,color='b',linewidth=0.8,markersize=2)
  18. #继续对坐标轴进行一个美化
  19. x_min=x.min()
  20. y_min=first_fun.min()
  21. x_max=x.max()
  22. y_max=first_fun.max()
  23. dx=(x_max-x_min)*0.4
  24. dy=(y_max-y_min)*0.4
  25. plt.xlim(x_min-dx,x_max+dx)
  26. plt.ylim(y_min-dy,y_max+dy)
  27. 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])
  28. plt.yticks([-1,-1.5,0,1,1.5])
  29. #将3.14换成兀
  30. 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$'])
  31. plt.yticks([-1, 0, +1],[r'$-1$', r'$0$', r'$+1$'])
  32. plt.show()

  2.3.绘制图像展示 

 3.绘制柱形图

  3.1.绘制图像解释

  1. 1.首先建立一块能够绘制四张图片的幕布
  2. 2.然后进行第一张图片的绘制和信息的标注
  3. 3.然后进行第二张图片的绘制和信息的标注
  4. 4.然后进行第三张图片的绘制和信息的标注
  5. 5.然后进行第四张图片的绘制和信息的标注
  6. 6.最后再利用函数将其的变得紧凑合适

     3.2.绘制图像代码

  1. #%%
  2. #1.3.绘制柱形图
  3. import matplotlib.pyplot as plt
  4. import numpy as np
  5. np.random.seed(19680801)
  6. e_bins=10
  7. x=np.random.randn(1000,3)
  8. #设置分辨率
  9. plt.rcParams['figure.dpi'] = 200 #分辨率
  10. #设置多图像的图片位置
  11. fig, ((ax0, ax1), (ax2, ax3)) = plt.subplots(nrows=2, ncols=2)
  12. #设置颜色和图标
  13. #绘制第一张图1/4
  14. colom0=['red','tan','lime']
  15. ax0.hist(x,e_bins,density=True,histtype='bar',color=colom0,label=colom0)
  16. ax0.legend(prop={'size': 10})#设置图列的大小为10
  17. ax0.set_title('bars with legend')#设置图片标题名字
  18. #绘制第二张图2/4
  19. colom1=['Bob','Jack','Lucy']
  20. ax1.hist(x,e_bins,density=True,histtype='bar',stacked=True,label=colom1)
  21. ax1.legend(prop={'size':10})
  22. ax1.set_title("stack bar")
  23. #绘制第三张图3/4
  24. colom2=['aaa','bbb','ccc']
  25. ax2.hist(x,e_bins,histtype='step',stacked=True,fill=False,label=colom2)
  26. ax2.legend(prop={'size':10})
  27. ax2.set_title("unfilled stacked bar")
  28. #绘制第四张图4/4
  29. colom3=['figure1','figure2','figure3']
  30. multi= [np.random.randn(n) for n in [10000, 5000, 2000]]
  31. ax3.hist(multi, e_bins, histtype='bar',label=colom3)
  32. ax3.legend(prop={'size':10})
  33. ax3.set_title('different sample example')
  34. #进行一下图片的调整
  35. fig.tight_layout()
  36. plt.show()
'
运行

   3.3.绘制图像展示 

 4.多种图形的综合绘制

   4.1.绘制图像解释

  1. 1.建立一块能够同时绘制三张图大小的幕布
  2. 2.创建并且给定数据及其取值范围
  3. 3.绘制中心第一张散点图
  4. 4.绘制上方和右方的条形统计图
  5. 5.对于冲突的坐标给予隐藏
  6. 6.再次调整并且美化轴间的宽度

  4.2.绘制图像代码 

  1. #%%
  2. #1.4.多种图片的结合
  3. #进行库文件的引用
  4. import numpy as np
  5. import matplotlib.pyplot as plt
  6. from mpl_toolkits.axes_grid1 import make_axes_locatable
  7. #给定足够多的数据点
  8. np.random.seed(19680801)
  9. #给定随机的x与y的区间值
  10. x = np.random.randn(1000)
  11. y = np.random.randn(1000)
  12. #创建绘图幕布
  13. fig, ax = plt.subplots(figsize=(5.5, 5.5))
  14. #中心散点图的绘制
  15. ax.scatter(x, y,marker = 'o',alpha = 0.1,color = "y")
  16. ax.set_aspect(1.)
  17. #再创建新两张图片
  18. divider = make_axes_locatable(ax)
  19. #给定两张图片的宽高和位置
  20. ax_histx = divider.append_axes("top", 1.2, pad=0.1, sharex=ax)
  21. ax_histy = divider.append_axes("right", 1.2, pad=0.1, sharey=ax)
  22. #隐藏上图的x坐标
  23. ax_histx.xaxis.set_tick_params(labelbottom=False)
  24. #隐藏下图的y坐标
  25. ax_histy.yaxis.set_tick_params(labelleft=False)
  26. #进行调整x的距离
  27. binwidth = 0.25
  28. xymax = max(np.max(np.abs(x)), np.max(np.abs(y)))
  29. lim = (int(xymax/binwidth) + 1)*binwidth
  30. #开始绘制图片
  31. bins = np.arange(-lim, lim + binwidth, binwidth)
  32. ax_histx.hist(x, bins=bins,alpha = 0.6,color = "b",rwidth = 0.8)
  33. ax_histy.hist(y, bins=bins, orientation='horizontal',alpha = 0.6,color = "r",rwidth = 0.8)
  34. #确定条形统计的xy区间范围
  35. ax_histx.set_yticks([0, 50, 100])
  36. ax_histy.set_xticks([0, 50, 100])
  37. plt.show()
'
运行

  4.3.绘制图像展示 

 5.源代码汇总展示

  1. #%%
  2. #数学建模简单入手Python绘图
  3. import matplotlib.pyplot as plt
  4. #1.matplotlib和seaborn库的使用
  5. #1.1.scatter函数绘制散点图
  6. x=[1,2,3,4,5,6,7,8,9,10]
  7. y=[5.1,4.5,9.2,1.3,7.8,3.4,4.5,6.8,7.0,1.2]
  8. plt.scatter(x,y,color='r',marker='*',linewidths=8)
  9. #%%
  10. #1.2.绘制折线统计图
  11. import numpy as np
  12. import matplotlib.pyplot as plt
  13. x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True)
  14. first_fun=np.cos(x)+np.sin(x)
  15. second_fun=np.sin(x)-np.cos(x)
  16. first_fun=first_fun+np.random.rand(256)*0.4
  17. second_fun=second_fun+np.random.rand(256)*0.4
  18. #设置图像的分辨率为
  19. plt.rcParams['figure.dpi'] = 100
  20. #基础不加修改的绘制图片
  21. plt.plot(x,first_fun)
  22. plt.plot(x,second_fun)
  23. #进阶改变线型和颜色的绘图
  24. plt.plot(x,first_fun,'gs--',linewidth=0.6,markersize=3)
  25. plt.plot(x,second_fun,color='b',linewidth=0.8,markersize=2)
  26. #继续对坐标轴进行一个美化
  27. x_min=x.min()
  28. y_min=first_fun.min()
  29. x_max=x.max()
  30. y_max=first_fun.max()
  31. dx=(x_max-x_min)*0.4
  32. dy=(y_max-y_min)*0.4
  33. plt.xlim(x_min-dx,x_max+dx)
  34. plt.ylim(y_min-dy,y_max+dy)
  35. 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])
  36. plt.yticks([-1,-1.5,0,1,1.5])
  37. #将3.14换成兀
  38. 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$'])
  39. plt.yticks([-1, 0, +1],[r'$-1$', r'$0$', r'$+1$'])
  40. plt.show()
  41. #%%
  42. #1.3.绘制柱形图
  43. import matplotlib.pyplot as plt
  44. import numpy as np
  45. np.random.seed(19680801)
  46. e_bins=10
  47. x=np.random.randn(1000,3)
  48. #设置分辨率
  49. plt.rcParams['figure.dpi'] = 200 #分辨率
  50. #设置多图像的图片位置
  51. fig, ((ax0, ax1), (ax2, ax3)) = plt.subplots(nrows=2, ncols=2)
  52. #设置颜色和图标
  53. #绘制第一张图1/4
  54. colom0=['red','tan','lime']
  55. ax0.hist(x,e_bins,density=True,histtype='bar',color=colom0,label=colom0)
  56. ax0.legend(prop={'size': 10})#设置图列的大小为10
  57. ax0.set_title('bars with legend')#设置图片标题名字
  58. #绘制第二张图2/4
  59. colom1=['Bob','Jack','Lucy']
  60. ax1.hist(x,e_bins,density=True,histtype='bar',stacked=True,label=colom1)
  61. ax1.legend(prop={'size':10})
  62. ax1.set_title("stack bar")
  63. #绘制第三张图3/4
  64. colom2=['aaa','bbb','ccc']
  65. ax2.hist(x,e_bins,histtype='step',stacked=True,fill=False,label=colom2)
  66. ax2.legend(prop={'size':10})
  67. ax2.set_title("unfilled stacked bar")
  68. #绘制第四张图4/4
  69. colom3=['figure1','figure2','figure3']
  70. multi= [np.random.randn(n) for n in [10000, 5000, 2000]]
  71. ax3.hist(multi, e_bins, histtype='bar',label=colom3)
  72. ax3.legend(prop={'size':10})
  73. ax3.set_title('different sample example')
  74. #进行一下图片的调整
  75. fig.tight_layout()
  76. plt.show()
  77. #%%
  78. #绘制饼形条状统计图
  79. import matplotlib.pyplot as plt
  80. import numpy as np
  81. #设置分辨率为200
  82. plt.rcParams['figure.dpi'] = 200
  83. #生成随机种子数据
  84. np.random.seed(19680801)
  85. jiaodu=np.linspace(0,2*np.pi,15,endpoint=False)
  86. r=10*np.random.rand(15)
  87. width=np.pi/4*np.random.rand(15)
  88. colors = plt.cm.viridis(r/ 10.)
  89. ax=plt.subplot(111,projection='polar')
  90. ax.bar(jiaodu,r,width=width,bottom=0,color=colors,alpha=0.5)
  91. plt.show()
  92. #%%
  93. #1.4.多种图片的结合
  94. #进行库文件的引用
  95. import numpy as np
  96. import matplotlib.pyplot as plt
  97. from mpl_toolkits.axes_grid1 import make_axes_locatable
  98. #给定足够多的数据点
  99. np.random.seed(19680801)
  100. #给定随机的x与y的区间值
  101. x = np.random.randn(1000)
  102. y = np.random.randn(1000)
  103. #创建绘图幕布
  104. fig, ax = plt.subplots(figsize=(5.5, 5.5))
  105. #中心散点图的绘制
  106. ax.scatter(x, y,marker = 'o',alpha = 0.1,color = "y")
  107. ax.set_aspect(1.)
  108. #再创建新两张图片
  109. divider = make_axes_locatable(ax)
  110. #给定两张图片的宽高和位置
  111. ax_histx = divider.append_axes("top", 1.2, pad=0.1, sharex=ax)
  112. ax_histy = divider.append_axes("right", 1.2, pad=0.1, sharey=ax)
  113. #隐藏上图的x坐标
  114. ax_histx.xaxis.set_tick_params(labelbottom=False)
  115. #隐藏下图的y坐标
  116. ax_histy.yaxis.set_tick_params(labelleft=False)
  117. #进行调整x的距离
  118. binwidth = 0.25
  119. xymax = max(np.max(np.abs(x)), np.max(np.abs(y)))
  120. lim = (int(xymax/binwidth) + 1)*binwidth
  121. #开始绘制图片
  122. bins = np.arange(-lim, lim + binwidth, binwidth)
  123. ax_histx.hist(x, bins=bins,alpha = 0.6,color = "b",rwidth = 0.8)
  124. ax_histy.hist(y, bins=bins, orientation='horizontal',alpha = 0.6,color = "r",rwidth = 0.8)
  125. #确定条形统计的xy区间范围
  126. ax_histx.set_yticks([0, 50, 100])
  127. ax_histy.set_xticks([0, 50, 100])
  128. plt.show()
'
运行

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/887340
推荐阅读
相关标签
  

闽ICP备14008679号