你可以安装python的第三方应用 chartdirector, 如下面用python代码生成多个曲线的png图形,并可以自定义layout.!/usr/bin/pythonfrom pychartdir import *# The data for the line chartdata0 = [42, 49, 33, 38, 51, 46, 29, 41, 44, 57, 59, 52, 37, 34, 51, 56, 56, 60, 70, ...
Python 画图存储savefig
答案:越飘越远。2014-12-07
建议你用面向对象的方式去画图,一个图作为一个对象,这样每次调用一个对象的保存图片方法就可以只保存当前图片。你这种用法第三张图会有三个子图是因为三个子图都画在同一个对象上。为了将面向对象的绘图库包装成只使用函数的调用接口,pyplot模块的内部保存了当前图表以及当前子图等信息。当前的图表和子图可以使用gcf()和gca()获得,它们分别是“Get Current Figure”和“Get Current Axis”的开头字母缩写。gcf()获得的是表示图表的Figure对象,而gca()则获得的是表示子图的Axes对象。下面我们在IPython中运行上节的“matplotlib_simple_plot.py”程序,然后调用gcf()和gca()查看当前的Figure和Axes对象。给你个例子import numpy as npimport matplotlib.pyplot as pltplt.figure(1) # 创建图表1plt.figure(2) # 创建图表2ax1 = plt.subplot(211) # 在图表2中创建子图1ax2 = plt.subplot(212) # 在图表2中创建子图2x = np.linspace(0, 3, 100)for i in xrange(5): plt.figure(1) ❶ # 选择图表1 plt.plot(x, np.exp(i*x/3)) plt.sca(ax1) ❷ # 选择图表2的子图1 plt.plot(x, np.sin(i*x)) plt.sca(ax2) # 选择图表2的子图2 plt.plot(x, np.cos(i*x))plt.show()2014-01-23
你可以安装python的第三方应用 chartdirector, 如下面用python代码生成多个曲线的png图形,并可以自定义layout.
#!/usr/bin/pythonfrom pychartdir import *# The data for the line chartdata0 = [42, 49, 33, 38, 51, 46, 29, 41, 44, 57, 59, 52, 37, 34, 51, 56, 56, 60, 70, 76, 63, 67, 75, 64, 51]data1 = [50, 55, 47, 34, 42, 49, 63, 62, 73, 59, 56, 50, 64, 60, 67, 67, 58, 59, 73, 77, 84, 82, 80, 84, 98]data2 = [36, 28, 25, 33, 38, 20, 22, 30, 25, 33, 30, 24, 28, 15, 21, 26, 46, 42, 48, 45, 43, 52, 64, 60, 70]# The labels for the line chartlabels = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"]# Create an XYChart object of size 600 x 300 pixels, with a light blue (EEEEFF)# background, black border, 1 pxiel 3D border effect and rounded cornersc = XYChart(600, 300, 0xeeeeff, 0x000000, 1)c.setRoundedFrame()# Set the plotarea at (55, 58) and of size 520 x 195 pixels, with white background.# Turn on both horizontal and vertical grid lines with light grey color (0xcccccc)c.setPlotArea(55, 58, 520, 195, 0xffffff, -1, -1, 0xcccccc, 0xcccccc)# Add a legend box at (50, 30) (top of the chart) with horizontal layout. Use 9 pts# Arial Bold font. Set the background and border color to Transparent.c.addLegend(50, 30, 0, "arialbd.ttf", 9).setBackground(Transparent)# Add a title box to the chart using 15 pts Times Bold Italic font, on a light blue# (CCCCFF) background with glass effect. white (0xffffff) on a dark red (0x800000)# background, with a 1 pixel 3D border.c.addTitle("Application Server Throughput", "timesbi.ttf", 15).setBackground( 0xccccff, 0x000000, glassEffect())# Add a title to the y axisc.yAxis().setTitle("MBytes per hour")# Set the labels on the x axis.c.xAxis().setLabels(labels)# Display 1 out of 3 labels on the x-axis.c.xAxis().setLabelStep(3)# Add a title to the x axisc.xAxis().setTitle("Jun 12, 2006")# Add a line layer to the chartlayer = c.addLineLayer2()# Set the default line width to 2 pixelslayer.setLineWidth(2)# Add the three data sets to the line layer. For demo purpose, we use a dash line# color for the last linelayer.addDataSet(data0, 0xff0000, "Server #1")layer.addDataSet(data1, 0x008800, "Server #2")layer.addDataSet(data2, c.dashLineColor(0x3333ff, DashLine), "Server #3")# Output the chartc.makeChart("multiline.png")
2014-01-22
存储之后plt.close('all')掉2020-02-24
plt.figure(),清空画板2018-03-05