• import matplotlib.pyplot as plt import numpy as np POINTS = 10 x_list = [0] * POINTS sin_list = [0] * POINTS cos_list = [0] * POINTS indx = 0 while True: y = [] indx += 1 # 更新绘图数据 x_list =...

只保存缓存的数据
import matplotlib.pyplot as plt
import numpy as np

POINTS = 10
x_list = [0] * POINTS
sin_list = [0] * POINTS
cos_list = [0] * POINTS
indx = 0

while True:
y = []
indx += 1
# 更新绘图数据
x_list = x_list[1:] + [indx]
sin_list = sin_list[1:] + [np.sin((indx / 20) * np.pi)]
cos_list = cos_list[1:] + [np.cos((indx / 20) * np.pi)]
y.append([sin_list, 'sin_list'])
y.append([cos_list, 'cos_list'])
# 显示时间
plt.pause(0.01)
# 清除上一次显示
plt.cla()
for i in range(len(y)):
plt.plot(x_list, y[i][0], label=y[i][1])
plt.legend()

保存原有数据
import matplotlib.pyplot as plt
import numpy as np

POINTS = 10
x_list = [0] * POINTS
sin_list = [0] * POINTS
cos_list = [0] * POINTS
indx = 0

while True:
y = []
indx += 1
# 更新绘图数据
x_list.append(indx)
sin_list.append(np.sin((indx / 20) * np.pi))
cos_list.append(np.cos((indx / 20) * np.pi))
y.append([sin_list, 'sin_list'])
y.append([cos_list, 'cos_list'])
# 显示时间
plt.pause(0.01)
# 清除上一次显示
plt.cla()
for i in range(len(y)):
plt.plot(x_list, y[i][0], label=y[i][1])
plt.legend()

展开全文
• 函数只被其名称引用。就Python而言，使用不同的输入参数集并不能使它...在解决此问题的最简单方法是为函数指定不同的名称：import sympy as syimport numpy as npimport matplotlib.pyplot as pltx, z, w, a0, a1, ...

函数只被其名称引用。就Python而言，使用不同的输入参数集并不能使它成为惟一的函数。因此，每次声明函数f时，都会覆盖以前的版本。因此，最后你只剩下f(w)，这对你所有的绘图重复调用。在
解决此问题的最简单方法是为函数指定不同的名称：import sympy as sy
import numpy as np
import matplotlib.pyplot as plt
x, z, w, a0, a1, a2, a3, n, c, = sy.symbols('x z w a0 a1 a2 a3 n c ')
def f(x):
return 2.2268*(x)**(1/2)+2.6295*x-0.0217*(x)**2+5.7406*10**(-5)*(x)**3
def g(z):
return 2.2268*(z)**(1/2)+1.5821*z-8.2664*10**(-3)*(z)**2+1.3718*10**(-5)*(z)**3
def h(w):
return 2.2268*(w)**(1/2)+1.1139*w-4.2846*10**(-3)*(w)**2+5.1828*10**(-6)*(w)**3
x = np.arange(0., 300, 0.01)
y = np.arange(0., 300, 0.01)
z = np.arange(0., 300, 0.01)
w = np.arange(0., 300, 0.01)
plt.plot(x, f(x), )
plt.show()
plt.plot(z, g(z), )
plt.show()
plt.plot(w, h(w), )
plt.show()
plt.plot(x, f(x), z, g(z), w, h(w), )
plt.show()
现在，这意味着可以在不同的函数中重复使用x作为输入，但是符号表示可能不是您想要的那样(假设这是一个简短的例子，因为这里没有实际使用符号)。在

展开全文
• 做数据分析，还有机器学习的收敛性，准确性分析时，往往需要将一些数据图形化，以曲线的形式显示出来，下面就介绍两种方式来实现这个小问题，一种是object-oriented面向对象的，另一种是基于plt的。 下面这个方式是...
做数据分析，还有机器学习的收敛性，准确性分析时，往往需要将一些数据图形化，以曲线的形式显示出来，下面就介绍两种方式来实现这个小问题，一种是object-oriented面向对象的，另一种是基于plt的。
下面这个方式是面向对象的方式：
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,2,100)
fig,ax = plt.subplots()
ax.plot(x,x,label='linear')
ax.plot(x,x**3,label='cubic')
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title('simple plot')
ax.legend()
plt.show()

将图形中的每个元素进行定义，然后组建成一个整体图像，是基于对象的。
上面的代码产生的图形如下图所示：

另一种是完全给予plt的代码，如下所示：
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,2,100)

plt.plot(x,x,label='linear')
plt.plot(x,x**3,label='cubic')
plt.xlabel('x label')
plt.xlabel('y label')
plt.title('simple plot')
plt.legend()
plt.show()

两种方式产生的图是一样的。
那么为什么要将上述两种代码分为面向对象和基于plt的呢，是由于matplotlib做出的图的每一个部分都可以看做一个独立的对象，比如坐标轴，坐标轴的刻度，坐标轴的名称，这个图的标题等等，下面的这个图可以很好的说明这个问题，因为已经将每一个部分分别标出来了。

展开全文
• import matplotlib.pyplot as plt import pandas as pd from matplotlib.pyplot import MultipleLocator plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=...
调用Python包
import matplotlib.pyplot as plt
import pandas as pd
from matplotlib.pyplot import MultipleLocator
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

造数-DataFrame
df = pd.DataFrame([['2010','aa',200,20],['2011','aa',210,30],['2012','aa',230,70],['2013','aa',260,20],['2014','aa',270,80],['2015','aa',200,20],
['2010','bb',250,25],['2011','bb',280,65],['2012','bb',290,35],['2013','bb',650,85],['2014','bb',350,95],['2015','bb',250,55],
['2010','cc',300,30],['2011','cc',380,33],['2012','cc',340,70],['2013','cc',380,80],['2014','cc',390,90],['2015','cc',300,30],
['2010','dd',400,40],['2011','dd',430,50],['2012','dd',420,80],['2013','dd',470,50],['2014','dd',420,70],['2015','dd',490,40],
['2010','ee',550,55],['2011','ee',560,85],['2012','ee',590,55],['2013','ee',590,65],['2014','ee',550,85],['2015','ee',570,55],
['2010','ff',600,60],['2011','ff',670,40],['2012','ff',660,70],['2013','ff',630,90],['2014','ff',680,80],['2015','ff',620,60]
],columns=['报表日期','股票名称','市值','FCFF'])
df['报表日期']=df['报表日期'].apply(int)
print(df)


不同指标全部画在一张图上
fig, ax = plt.subplots()
h,l = ax.get_legend_handles_labels()
for i in df['股票名称'].unique():
df[df['股票名称']==i].groupby('股票名称').plot('报表日期','市值',ax=ax,figsize=(16, 10),label='%s_市值'%i)
df[df['股票名称']==i].groupby('股票名称').plot('报表日期','FCFF',ax=ax,figsize=(16, 10),label='%s_FCFF'%i,linestyle='-.')
#     sub_data[sub_data['股票名称']==i].groupby('股票名称').plot('报表日期','DebtRatioWithoutR&D',ax=ax,figsize=(16, 10),label='%s_D/E'%i,linestyle='-')

x_major_locator=MultipleLocator(1.0)
y_major_locator=MultipleLocator(50)
ax=plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
ax.yaxis.set_major_locator(y_major_locator)
plt.legend(fontsize=12)
plt.axis([2010, 2015, 10, 700])
plt.show()

效果如下：  PS：如果图例挡住折线了，调整一下图片尺寸或横纵坐标的范围即可。
或者按股票名称分别画对应指标
for i in df['股票名称'].unique():
x_major_locator=MultipleLocator(1.0)
y_major_locator=MultipleLocator(50)
ax=plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
ax.yaxis.set_major_locator(y_major_locator)
#     plt.legend(fontsize=12)
plt.axis([2010, 2015, 10, 700])
df[df['股票名称']==i].groupby('股票名称').plot('报表日期',['市值','FCFF'],figsize=(6, 4),label=['%s_市值'%i,'%s_FCFF'%i])

效果如下（按股票名称画出多张图）：       转载请附出处，谢谢。
展开全文
• 对类似问题有一些先前的答案(例如https://stackoverflow.com/a/22081678/325565),但他们建议采用次优方法.大多数先前的答案建议在pcolormesh填充上绘制白色多边形....这是一个更的工作,但有一种方法可以更快地...
• ## matplotlib画多条曲线

千次阅读 2017-08-23 09:52:01
plot(self, *args, **kwargs) def plot(self,ax,ay,colour): ”’#最常用的绘图命令plot， ”’self.axes.grid()self.axes.plot(ax,ay,colour) ...plot(x1, y1, x2, y2, antialised=False) ##画多条曲线 plot
• matplotlib.pyplot
• 如果你需要同一条曲线根据不同部位选择不同的颜色来显示，那么就需要看一下这个例子。如下图： 这个图里，每条曲线根据曲线的导数来选择不同的颜色显示，相同导数，也就是说明相同的曲率部分就会是一样的颜色。 ...
• Matplotlib.pyplot import matplotlib.pyplot as plt 2.绘制一张空白图 fig, ax = plt.subplots() plt.subplots()的作用是创建一个图或者一组子图返回值是Figure，axes.Axes。此处代码中 fig = Figure ax = axes....
• matplotlib 实时绘制多条曲线
• 不过稍为复杂一点的作图，都会需要多条曲线，比如水的沸腾就是在气压和温度的作用下，才能决定它的沸点。人的体重是否超重，也是在重量和身高的相互关系之下才能决定是否健康。因此，往往需要多条曲线在同一个坐标里...
• 绘制sinx和cosx # -*- coding:utf-8 -*- ...import matplotlib.pyplot as plt x = np.linspace(0, 2 * (np.pi)) #numpy.linspace(开始，终值(含终值))，个数) y1 = np.sin(x) y2 = np.cos(x) #画图 plt.title('C...
• matplotlib画图时，常常需要实现两类功能，一类是在一个坐标轴上画多条曲线，能够清楚地看到多条曲线的对比情况。另一种情况是在同一个窗口的不同子图上画图，多用于呈现不同内容的曲线，没有对比关系的曲线图。...
• 时候需要在程序运行过程中，查看一些数据的动态变化，最容易想到的是像opencv那样直接循环使用imshow()形成动态画面，但是由于matplotlib中的显示模式是阻塞模式，在plt.show()之后程序就会暂停在那，打开一个...
• 主要为大家详细介绍了python使用matplotlib模块绘制多条折线图、散点图的方法，具有一定的参考价值，感兴趣的小伙伴们可以参考一下
• matplotlib 画图，实现曲线颜色控制 由于需要设置曲线的颜色和控制按钮的颜色一致。完成之后，自己学习记录如下 准备1 在Qtdesigner 中设置QSS 选择需要编辑的按键，右键-> 编辑样式表，如下所示。选择添加...
• 在上一篇中，本人片面的认为问题解决了，后来认真一看曲线确实同步了，可是横坐标惨不忍睹，如下图所示： 认为是下面这设置横坐标label 位置的问题，实际上经过测试将这句位置上调整到ax2=axs.twinx() 之前，...
• 由于此方法被封装，底层代码又很长，我就想干脆自己用matplotlib模拟一个。 具体思路其实很简单，就是将纵坐标的数据组织成一个numpy数组，每一行代表一根曲线对应的数据。之后，在每一行上加上一个偏移量，使...
• 1、生成个视图（画板）： 在matplotlib 中，一个figure即为一个画板，用plt.figure()创建一个新画板，如果只有一个画板的话这句可以省略。 #创建第一个视图（画板） plt.figure(1) #第一个画板的内容 #… #创建第...
•  这里我利用的是matplotlib.pyplot.plot的工具来绘制折线图，这里先给出一个段代码和结果图： 1.代码 # -*- coding: UTF-8 -*- import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt #...
• pandas的Series和DataFrame结构的plot()方法可以自动调用matplotlib的功能进行绘图，在数据分析和处理时可以很方便地进行可视化。例如下面的代码： 代码运行结果如下图： Python学习...
• 数据分析笔记–matplotlib（三）多条数据显示在同于坐标系中 假设大家在30岁的时候,根据自己的实际情况, 统计出来了你和你同桌各自从11岁到30岁每年 交的女(男)朋友的数量如列表a和b,请在一个 图中绘制出该数据的...
• Matplotlib在一张画布上画个图的两种方法，plt.subplot,plt.subplots。 目录回顾plt.subplots()画法plt.subplot()画法保存 回顾 之前也用过plt.subplots()在一张图上画过个图，今天看到用plt.subplot()的画法想...
• #开始绘图fig,ax1=plt.subplots()fig.set_size_inches(12,6)plt.set_cmap('RdBu')#multiplelineplotx=np.arange(featureValuedf.shape[1])#x坐标的范围lw=4#控制线条的粗细a,=ax1.plot(x,featureValuedf.loc['Bac...
• 1、在一张图上画多条曲线 import matplotlib.pyplot as plt import numpy as np x = np.linspace(-3,3,50) #设置横轴的取值点 y1 = 2 * x + 1 #曲线1 y2 = x**2 #曲线2 plt.figure(num=3,figsize=(8,5)) plt....
• 原博文2019-07-14 16:13 −在讲解绘制个子图之前先简单了解一下使用matplotlib绘制一个图，导入绘图所需库matplotlib并创建一个等间隔的列表x，将[0,2*pi]等分为50等份，绘制函数sin(x)。当没有给定x轴数值时，...
• 笔记一、先画线1.plt.plot() 函数1.1plt.plot(x, y, "格式控制字符串")1.2示例二、画个函数曲线1.Python math库常用函数2.np.arange() 函数三、图，坐标系，曲线1.同一张图，同一坐标系，画曲线2.同一张图，...
• 要使曲线平滑：import matplotlib.pyplot as pltimport numpy as npfrom scipy.interpolate import make_interp_spline, BSplinedef create_spline_from(x, y, resolution):new_x = np.linspace(x[0], x[-1], ...
• ## 用matplotlib画PR曲线

千次阅读 2019-01-03 23:35:57
import matplotlib as plt 然后以VOC为例，画PR曲线： def _do_python_eval(self, output_dir='output'): #rootpath = os.path.join(self.root, 'VOC' + self._year) rootpath = '/data/Datasets/l...

...