matplotlib绘图时show函数需在save函数后

matplotlib绘图时,先调用show,后调用save函数保存图像,否则无法保存图像信息

figsize = 23,10
#fig, axes = plt.subplots(nrows=1, ncols=2)
fig, axs = plt.subplots(4, 3, sharex='col',sharey='row',figsize=figsize)
# 在每个子图中绘制一个图形
pic_number = 0
for i in range(4): ##绘制12个子图
    for j in range(3):
        fontsize = 10
        if i == 0 and j == 0: ## 利用第一行 第一个子图设置 所有子图的title
            axs[i,j].text(1.65, 1.3, 'The centroid of the west wall zonal drifts over time(2013.01-2017.10)',  
        fontsize = 24 
        )
        if i == 3 : ## 最后一行子图,添加X坐标名称
            axs[i][j].set_xlabel("Local Time", fontsize=fontsize)
        else:
            pass
        
        #axs[i][j].scatter(MONTH_TIME[pic_number], MONTH_VELOCITY[pic_number])
        #axs[i][j].plot(MONTH_TIME[pic_number], MONTH_VELOCITY[pic_number])
        # 显示图例
        #axs[i][j].legend()
        if pic_number == 0:## 计算1月 EPB平均面积变化
            #axs[i][j].set_xlabel("Local Time(January)", fontsize=fontsize) 
            axs[i,j].text(0.7, 0.9, 'January', 
        style ='italic', 
        fontsize = 11, 
        bbox ={'facecolor':'green', 
               'alpha':0.6, 'pad':10}) 
        elif pic_number == 1:
            #axs[i][j].set_xlabel("Local Time(February)", fontsize=fontsize)
            axs[i,j].text(0.7, 0.9, 'February', 
        style ='italic', 
        fontsize = 11, 
        bbox ={'facecolor':'green', 
               'alpha':0.6, 'pad':10}) 
        elif pic_number == 2:
            #axs[i][j].set_xlabel("Local Time(March)", fontsize=fontsize)
            axs[i,j].text(0.7, 0.9, 'March', 
        style ='italic', 
        fontsize = 11, 
        bbox ={'facecolor':'green', 
               'alpha':0.6, 'pad':10}) 
        elif pic_number == 3:
            #axs[i][j].set_xlabel("Local Time(April)", fontsize=fontsize)
            axs[i,j].text(0.7, 0.9, 'April', 
        style ='italic', 
        fontsize = 11, 
        bbox ={'facecolor':'green', 
               'alpha':0.6, 'pad':10}) 
        elif pic_number == 4:
            #axs[i][j].set_xlabel("Local Time(May)", fontsize=fontsize)
            axs[i,j].text(0.7, 0.9, 'May', 
        style ='italic', 
        fontsize = 11, 
        bbox ={'facecolor':'green', 
               'alpha':0.6, 'pad':10}) 
        elif pic_number == 5:
            #axs[i][j].set_xlabel("Local Time(June)", fontsize=fontsize)
            axs[i,j].text(0.7, 0.9, 'June', 
        style ='italic', 
        fontsize = 11, 
        bbox ={'facecolor':'green', 
               'alpha':0.6, 'pad':10}) 
        elif pic_number == 6:
            #axs[i][j].set_xlabel("Local Time(July)", fontsize=fontsize)
            axs[i,j].text(0.7, 0.9, 'July', 
        style ='italic', 
        fontsize = 11, 
        bbox ={'facecolor':'green', 
               'alpha':0.6, 'pad':10}) 
        elif pic_number == 7:
            #axs[i][j].set_xlabel("Local Time(August)", fontsize=fontsize)
            axs[i,j].text(0.7, 0.9, 'August', 
        style ='italic', 
        fontsize = 11, 
        bbox ={'facecolor':'green', 
               'alpha':0.6, 'pad':10}) 
        elif pic_number == 8:
            #axs[i][j].set_xlabel("Local Time(September)", fontsize=fontsize)
            axs[i,j].text(0.7, 0.9, 'September', 
        style ='italic', 
        fontsize = 11, 
        bbox ={'facecolor':'green', 
               'alpha':0.6, 'pad':10}) 
        elif pic_number == 9:
            #axs[i][j].set_xlabel("Local Time(October)", fontsize=fontsize)
            axs[i,j].text(0.8, 0.8, 'October', 
        style ='italic', 
        fontsize = 11, 
        bbox ={'facecolor':'green', 
               'alpha':0.6, 'pad':9}) 
        elif pic_number == 10:
            #axs[i][j].set_xlabel("Local Time(November)", fontsize=fontsize)
            axs[i,j].text(0.7, 0.9, 'November', 
        style ='italic', 
        fontsize = 11, 
        bbox ={'facecolor':'green', 
               'alpha':0.6, 'pad':10}) 
        elif pic_number == 11:
            #axs[i][j].set_xlabel("Local Time(December)", fontsize=fontsize)
            axs[i,j].text(0.7, 0.9, 'December', 
        style ='italic', 
        fontsize = 11, 
        bbox ={'facecolor':'green', 
               'alpha':0.6, 'pad':10}) 
        else:
            pass
        axs[i][j].set_ylabel("Velocity(m/s)", fontsize=fontsize)
        #axs[i][j].set_xticks(time_tick, time_xticks, rotation=0, fontsize=fontsize-2)
        #axs[i][j].set_xticks(time_tick)
        #axs[i][j].set_xticklabels(time_xticks, rotation='vertical')

        pic_number = pic_number+1
plt.show()
plt.savefig('high_low_every_v.png')

在这里插入图片描述
但是high_low_every_v.png图像是一片空白,说明没有保存相关图像信息。
在这里插入图片描述

plt.savefig(‘high_low_every_v.png’)
调换位置
plt.savefig(‘high_low_every_v.png’)
plt.show()

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是Matplotlib的进阶代码示例: 1. 设置字体大小和样式 ```python import matplotlib.pyplot as plt plt.rcParams.update({'font.size': 14, 'font.family': 'Times New Roman'}) ``` 2. 添加图例 ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) y1 = np.sin(x) y2 = np.cos(x) plt.plot(x, y1, label='Sin') plt.plot(x, y2, label='Cos') plt.legend(loc='upper right') plt.show() ``` 3. 设置坐标轴范围和标签 ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) plt.plot(x, y) plt.xlim([0, 2*np.pi]) plt.ylim([-1, 1]) plt.xlabel('X Axis') plt.ylabel('Y Axis') plt.show() ``` 4. 添加文本注释 ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) plt.plot(x, y) plt.annotate('Maximum', xy=(np.pi/2, 1), xytext=(np.pi/2, 1.5), arrowprops=dict(facecolor='black', shrink=0.05)) plt.show() ``` 5. 使用子图 ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) y1 = np.sin(x) y2 = np.cos(x) fig, axs = plt.subplots(2, 1) axs[0].plot(x, y1) axs[0].set_title('Sin') axs[1].plot(x, y2) axs[1].set_title('Cos') plt.show() ``` 这些示例代码可以帮助您更好地理解Matplotlib的高级功能。 ### 回答2: Matplotlib是一种Python的数据可视化库,可以帮助我们创建各种类型的图表和图形。下面是一些Matplotlib进阶代码的示例: 1. 子图划分: 使用`plt.subplot()`函数可以将整个绘图区域划分为多个子图,可以是网格状或自定义形状。可以通过指定行数、列数和子图位置来确定子图的位置。 2. 图表样式设置: 使用`plt.style`来设置图表的样式,如带有背景网格的`'ggplot'`风格或简洁的`'seaborn'`风格等。 3. 自定义图表颜色: 可以使用RGB、HEX或颜色名称等方式来自定义图表中的颜色。例如,通过`color`参数指定颜色,或者通过`plt.cm.colors`模块使用更高级的颜色映射。 4. 图表标签和注释: 使用`plt.xlabel()`和`plt.ylabel()`函数可以设置横轴和纵轴标签,使用`plt.title()`函数可以设置图表标题。可以使用`plt.annotate()`函数在图表上添加注释。 5. 图例设置: 使用`plt.legend()`来添加图例并设置其位置。可以选择在图表内部或外部显示图例,也可以使用`bbox_to_anchor`参数进行更精细的位置控制。 6. 坐标轴设置: 可以使用`ax.tick_params()`函数来设置坐标轴的刻度、标签和网格线的样式。可以通过设置`xlabelpad`和`ylabelpad`参数来调整坐标轴标签与坐标轴之间的间距。 7. 3D图形绘制: Matplotlib还提供了在三维空间中绘制点、线和曲面的功能。可以使用`mpl_toolkits.mplot3d`模块中的`Axes3D`对象来创建三维坐标系。 8. 动画效果: 通过使用`animation`模块,可以在Matplotlib中创建动画效果。可以使用`FuncAnimation`函数来生成一个动画对象,并通过`save()`函数将动画保存为视频或动态GIF。 这只是一些Matplotlib的进阶代码示例,实际应用中还有更多的功能和技巧。通过不断学习和实践,可以在数据可视化中充分发挥Matplotlib的优势。 ### 回答3: Matplotlib是一个用于绘制数据可视化图形的Python库。它提供了广泛的绘图选项和灵活的配置参数,使得用户可以轻松地创建各种类型的图形。 Matplotlib的进阶代码包括许多功能和技巧,可以让图形更加美观和具有专业水准。以下是一些可以用于进阶Matplotlib代码的示例: 1. 改变图形风格:Matplotlib提供了不同的图形风格供选择,可以通过设置`plt.style.use()`来更改图形的样式,例如:"ggplot"、"seaborn"、"fivethirtyeight"等。 2. 自定义颜色和线型:可以通过设置`plt.plot()`函数的`color`和`linestyle`参数来自定义图形的颜色和线型。 3. 添加图例和标签:可以通过`plt.legend()`函数来添加图例,通过`plt.xlabel()`和`plt.ylabel()`函数来添加坐标轴标签。 4. 设置坐标轴刻度:可以使用`plt.xticks()`和`plt.yticks()`函数来设置坐标轴的刻度值,并通过`rotation`参数来旋转刻度标签。 5. 添加注释和文本:可以使用`plt.text()`和`plt.annotate()`函数来添加注释和文本,以增加图形的可读性和说明性。 6. 子图布局和图形尺寸:可以使用`plt.subplots()`函数创建包含多个子图的布局,通过`plt.figure()`函数设置图形的尺寸和分辨率。 7. 使用各种图形类型:除了常见的折线图和散点图外,Matplotlib还支持绘制柱状图、饼图、箱线图、等高线图等多种图形类型。 8. 添加背景和网格线:可以使用`plt.grid()`函数来添加网格线,使用`plt.axhspan()`和`plt.axvspan()`函数来添加背景色。 9. 保存和导出图形:通过`plt.savefig()`函数可以将图形保存为常见的图像格式,如PNG、JPEG等。 10. 添加动画效果:使用Matplotlib的`animation`模块可以创建动画效果,通过逐帧绘制来展示数据的演变过程。 以上是进阶Matplotlib的一些常用代码示例,通过了解和运用这些功能,可以更加灵活地使用Matplotlib库来绘制专业水平的数据可视化图形。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值