我需要使用semilogx(x,y)
来绘制图表。我有x=[0 1 2 ... 10 15 20 30 50 75 100]
。问题是MATLAB不绘制x=0
,我知道这是因为log(0)=undef
。那么MATLAB中有另一种方法来传播我的观点吗?因为使用线性比例尺会在图形宽度的1/10处挤压所有第一点!如何在semilogx图中绘制x = 0?
1
A
回答
1
通常情况下,在这种情况下所做的是将1
添加到所有x
,因此第一个值(原始为0
)出现在原点处,并且所有值的回转换也是相同的。您可以添加除1
以外的任何其他小数值,并获得类似的结果。但是,您不要添加的值太小的(如eps
),因为那么您将与下一个值有很大距离,这会导致所有其他值在图的右侧打包。
让我们来看一个例子:
x = [0 logspace(0,2,5)];
% x = 0 1 3.1623 10 31.623 100
y = 2.*(x+1); % add 1 to all x
semilogx(x+1,y,'o','markerfacecolor','b')
如果用eps
替换0
而你得到:
x = [0 logspace(0,2,5)];
y = 2.*(x+eps); % add a tiny value too all x
semilogx(x+eps,y,'o','markerfacecolor','b')
+0
这解决了我的问题!非常感谢 ! – John
0
确实没有定义log(0),但是你可以用一个非常小的数字替代它,例如eps
,它在Matlab中定义为一个小号。
相关问题
- 1. 如何在Chart.js中绘制X轴(Y = 0处的线)?
- 2. 卸下在semilogx图的x轴次刻度在MATLAB
- 3. 如何在挂钩为0时使用Highcharts绘制x轴线?
- 4. 如何在matlab中绘制x,y,z?
- 5. 如何绘制X轴,Y轴线图?
- 6. 如何在x轴熊猫(matplotlib)中绘制HMS格式化图
- 7. 如何在高图中绘制值为0的列
- 8. 如何在面积图中的X轴上绘制日期?
- 9. 如何绘制(x,y,z)
- 10. 如何使用matplotlib(mpl3d)绘制X = 0平面?
- 11. 如何用gnuplot绘制一个隐函数f(x,y,z)= 0?
- 12. 如何使用核心绘图沿X轴绘制NSDate
- 13. 如何在Matlab中绘制X-Y-color尺寸的3D图形?
- 14. 在MS Chart控件中绘制x = 0的两个y值
- 15. 绘制轴直通x = 0和y = 0的
- 16. 如何在图像中绘制Qwt图
- 17. 如何在一张图中绘制lm(log(y)〜)和lm(y〜x + x^2)的ggplot
- 18. python2.7:如何绘制图中x轴网格线的值
- 19. 如何在ios图表中绘制CombinedChart
- 20. 如何在R中绘制颜色图
- 21. 在x中绘制位图可绘制平铺,但在y中伸展
- 22. 如何在Swing中绘制此图表?
- 23. 如何在图中绘制pandas groupby值?
- 24. 如何在Mathematica中绘制图表?
- 25. Excel:在x轴上绘制图形
- 26. 如何在x轴上计数日期并在图中绘制图形
- 27. 如何在WPF中绘制函数图?
- 28. 如何在plotly.js中绘制同一图中的两个绘图
- 29. Matlab plotyy和semilogx
- 30. 如何在coreplot中绘制多个图
你有没有试过,如果要弄清楚有可能通过h来完成和先报道?记住日志是为所有x> 0定义的... –
是的,我知道,但是你知道其他东西使x轴的一部分大于其余吗? – John