楼主: xjtiger
5965 7

[问答] 如何画拟合直线 [推广有奖]

  • 2关注
  • 2粉丝

教师

教授

21%

还不是VIP/贵宾

-

威望
0
论坛币
8814 个
通用积分
0
学术水平
3 点
热心指数
3 点
信用等级
3 点
经验
21586 点
帖子
62
精华
0
在线时间
2432 小时
注册时间
2005-3-14
最后登录
2024-11-9

楼主
xjtiger 发表于 2014-11-20 10:42:36 |AI写论文
50论坛币
我用股票市场价格数据研究它的无标度特性,做出了节点度分布图,想在双对数坐标下,给节点度分布图画一条拟合直线,想如图1这样。 可是我画出的度分布的拟合线是图2这样。
我的代码如下:
p=polyfit([0:M],P_DeD,1)   
z=polyval(p,[0:M]);
loglog([0:M],P_DeD,'.');
hold on
plot(log([0:M]),z,'r');
    
其中 p =  -0.0004    0.0283
  
  不知道为什么拟合出来是曲线不是直线啊?请各位指教

图1 图2

关键词:poly plot 股票市场 数据研究 hold 股票市场 分布图 hold 如何

本帖被以下文库推荐

沙发
fantuanxiaot 发表于 2014-11-20 12:42:49
最后一个代码是plot(log([0:M]),log(z),'r'); ; 不是plot(log([0:M]),z,'r'); 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
xjtiger + 5 热心帮助其他会员
zbin7451f + 100 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 100  论坛币 + 5  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

藤椅
xjtiger 发表于 2014-11-20 13:41:42
fantuanxiaot 发表于 2014-11-20 12:42
最后一个代码是plot(log([0:M]),log(z),'r');  ; 不是plot(log([0:M]),z,'r'); 。。。。。。。。。。。。。 ...
我把它改成log(z)后,画出的图中,就没有拟合线了,只有原来的点。

板凳
xjtiger 发表于 2014-11-20 13:46:28
p=polyfit([0:M],P_DeD,1)   
z=polyval(p,[0:M]);
这两句代码,我尝试了各种log组合,比如 :p=polyfit(log([0:M]),log(P_DeD),1) ,或者z=polyval(p,log([0:M])),拟合结果都不对。

报纸
fantuanxiaot 发表于 2014-11-20 20:23:22
plot(log([0:M]),log(z),'r-')
已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
zbin7451f + 100 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 100  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

地板
xjtiger 发表于 2014-11-20 21:20:06
fantuanxiaot 发表于 2014-11-20 20:23
plot(log([0:M]),log(z),'r-')
改为这句,仍然没有拟合线画出来啊。还是只有原来的点。

7
xjtiger 发表于 2014-11-21 18:48:11
plot(log([0:M]),log(P_DeD),'.');
p=polyfit([0:M],P_DeD,1)   
z=polyval(p,[0:M]);
hold on
plot(log([0:M]),log(z),'r-');
度分布图new.jpg 修改后拟合线是这条红线,仍然不是直线,哪位大侠帮忙看下啊

8
xjtiger 发表于 2014-11-22 21:12:01
这个问题解决了,因为我的数据中,有不少0值,取对数产生NAN,无法拟合。去掉数据中的0值,就可以画出拟合直线了。感谢大家的关注。

4.jpg (16.4 KB)

4.jpg

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
fantuanxiaot + 3 + 3 + 3 精彩帖子

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 06:39