• ## 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
plot(self, *args, **kwargs) def plot(self,ax,ay,colour): ‘’’#最常用的绘图命令plot， ‘’’self.axes.grid()  self.axes.plot(ax,ay,colour)
self.UpdatePlot()

plot(x1, y1, x2, y2, antialised=False) ##画多条曲线 plot(x, y, color=‘green’, linestyle=‘dashed’, marker=‘o’, markerfacecolor=‘blue’, markersize=12).
展开全文
• 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])

效果如下（按股票名称画出多张图）：       转载请附出处，谢谢。
展开全文
• 做数据分析，还有机器学习的收敛性，准确性分析时，往往需要将一些数据图形化，以曲线的形式显示出来，下面就介绍两种方式来实现这个小问题，一种是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做出的图的每一个部分都可以看做一个独立的对象，比如坐标轴，坐标轴的刻度，坐标轴的名称，这个图的标题等等，下面的这个图可以很好的说明这个问题，因为已经将每一个部分分别标出来了。

展开全文
• matplotlib.pyplot
问题：多个plot画不到一张图上 解决方法： 多个plot用一个plt.show()即可。 一次plt.show()就会有一次输出。
# 如何让函数画在同一张画布上？
for i in range(1,15,3):
train_score = []
test_score = []
for j in range(1,15,1):
# 一步步找到各个参数的最优值
DTree_classifier = DecisionTreeClassifier(max_depth=i,min_samples_leaf=j)
# 训练数据
DTree_classifier.fit(X_train, y_train)
# 计算预测准确率
train_s = accuracy_score(DTree_classifier.predict(X_train),y_train)
train_score.append(train_s)
test_s = accuracy_score(DTree_classifier.predict(X_test),y_test)
test_score.append(test_s)

plt.plot(train_score,label='Train_max_depth=%d'% i)
plt.plot(test_score,label='Test_max_depth=%d'% i)
plt.xlabel('min_samples_leaf')
plt.ylabel('准确率')
plt.legend()
plt.grid()

结果：  如何将函数绘制在一张图上？
将循环里的plt.show()注释掉
plt.figure(figsize=(10,6))
for i in range(1,15,3):
train_score = []
test_score = []
for j in range(1,15,1):
# 一步步找到各个参数的最优值，这样不科学
DTree_classifier = DecisionTreeClassifier(max_depth=i,min_samples_leaf=j)
# 训练数据
DTree_classifier.fit(X_train, y_train)
# 计算预测准确率
train_s = accuracy_score(DTree_classifier.predict(X_train),y_train)
train_score.append(train_s)
test_s = accuracy_score(DTree_classifier.predict(X_test),y_test)
test_score.append(test_s)

plt.plot(train_score,label='Train_max_depth=%d'% i)
plt.plot(test_score,label='Test_max_depth=%d'% i)
plt.xlabel('min_samples_leaf')
plt.ylabel('准确率')
plt.legend()
plt.grid()
#     plt.show()

结果：  ✌ Perfect~ ✌
展开全文
• 1、生成个视图（画板）： 在matplotlib 中，一个figure即为一个画板，用plt.figure()创建一个新画板，如果只有一个画板的话这句可以省略。 #创建第一个视图（画板） plt.figure(1) #第一个画板的内容 #… #创建第...
• 要使曲线平滑：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], ...
• 主要为大家详细介绍了python使用matplotlib模块绘制多条折线图、散点图的方法，具有一定的参考价值，感兴趣的小伙伴们可以参考一下
• 函数只被其名称引用。就Python而言，使用不同的输入参数集并不能使它...在解决此问题的最简单方法是为函数指定不同的名称：import sympy as syimport numpy as npimport matplotlib.pyplot as pltx, z, w, a0, a1, ...
• 绘制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画图时，常常需要实现两类功能，一类是在一个坐标轴上画多条曲线，能够清楚地看到多条曲线的对比情况。另一种情况是在同一个窗口的不同子图上画图，多用于呈现不同内容的曲线，没有对比关系的曲线图。...
• 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 =...
• matplotlib 实时绘制多条曲线
• 这里我利用的是matplotlib.pyplot.plot的工具来绘制折线图，这里先给出一个段代码和结果图： # -*- coding: UTF-8 -*- import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt #这里导入...
• 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....
• #开始绘图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...
• Matplotlib.pyplot import matplotlib.pyplot as plt 2.绘制一张空白图 fig, ax = plt.subplots() plt.subplots()的作用是创建一个图或者一组子图返回值是Figure，axes.Axes。此处代码中 fig = Figure ax = axes....
• ## 用matplotlib画PR曲线

千次阅读 2019-01-03 23:35:57
首先，头文件加入： ...然后以VOC为例，PR曲线： def _do_python_eval(self, output_dir='output'): #rootpath = os.path.join(self.root, 'VOC' + self._year) rootpath = '/data/Datasets/l...
•  这里我利用的是matplotlib.pyplot.plot的工具来绘制折线图，这里先给出一个段代码和结果图： 1.代码 # -*- coding: UTF-8 -*- import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt #...
• 使用matplotlib绘制折线图 ...　x轴数据，y轴数据，format_string控制曲线的格式字串，format_string由颜色字符，风格字符，和标记字符 。　 导入库 import matplotlib.pyplot as plt 数据部分 allX=[1, 2, 3,...
• 参考链接：if __name__ == '__main__':from sklearn import metricsimport numpy as npimport matplotlib.pyplot as pltplt.figure(0).clf() # plt.close()将完全关闭图形窗口，其中plt.clf()将清除图形-您仍然可以...
• 如果你需要同一条曲线根据不同部位选择不同的颜色来显示，那么就需要看一下这个例子。如下图： 这个图里，每条曲线根据曲线的导数来选择不同的颜色显示，相同导数，也就是说明相同的曲率部分就会是一样的颜色。 ...
• 我有两条曲线的x和y值列表，它们都有奇怪的形状，而且我没有任何函数。我需要做两件事：（1）绘制它并对曲线之间的区域进行着色，如下图所示；（2）找到曲线之间该着色区域的总面积。在matplotlib中，我可以用fill-...
• ## python matplotlib绘制多条折线图

万次阅读 多人点赞 2020-08-02 22:13:10
python matplotlib绘制多条折线图 代码 import matplotlib.pyplot as plt x = [6, 24, 48, 72] y1 = [87, 174, 225, 254] y2 = [24, 97, 202, 225] y3 = [110, 138, 177, 205] y4 = [95, 68, 83, 105] y5 = [72, 74...
• 1、准备工作（过滤警告、显示中文、引入pyplot模块）；2、绘制单个曲线图（plot函数、添加注释）；3、绘制曲线图（增加subplot函数）。
• 时候需要在程序运行过程中，查看一些数据的动态变化，最容易想到的是像opencv那样直接循环使用imshow()形成动态画面，但是由于matplotlib中的显示模式是阻塞模式，在plt.show()之后程序就会暂停在那，打开一个...
• matplotlib 画图，实现曲线颜色控制 由于需要设置曲线的颜色和控制按钮的颜色一致。完成之后，自己学习记录如下 准备1 在Qtdesigner 中设置QSS 选择需要编辑的按键，右键-> 编辑样式表，如下所示。选择添加...
• 直接上python代码： ...import matplotlib.pyplot as plt names = ['GFK', 'SA', 'DA-NBNN', 'DLID', 'DaNN', 'Ours'] x = range(len(names)) y_1 = [0.464, 0.45, 0.528, 0.519, 0.536, 0.841] y...
• 如下所示： # -*- coding: utf-8 -*- ...from matplotlib.ticker import MultipleLocator, FormatStrFormatter y0 = [] y1 = [] y2 = [] y3 = [] y4 = [] f = open(y0.txt) lines = f.readlines() for li in line
• 不过稍为复杂一点的作图，都会需要多条曲线，比如水的沸腾就是在气压和温度的作用下，才能决定它的沸点。人的体重是否超重，也是在重量和身高的相互关系之下才能决定是否健康。因此，往往需要多条曲线在同一个坐标里...
• 对类似问题有一些先前的答案(例如https://stackoverflow.com/a/22081678/325565),但他们建议采用次优方法.大多数先前的答案建议在pcolormesh填充上绘制白色多边形....这是一个更的工作,但有一种方法可以更快地...

...