作者cj10243 (cj)
看板Python
标题[问题] 绘制双曲线
时间Wed Jun 21 00:50:00 2017
各位大大好
我想绘制双曲线搭配贯轴、共轭轴及渐近线。
因为背景知识只有 X^2 Y^2
▁▁▁ - ▁▁▁ = 1
a^2 b^2
我参考了维基百科双曲线参数式
利用x=a*cosh(t) + t
y=b*sinh(t) + k
写了以下的code
import matplotlib.pyplot as plt
import numpy as np
theta = np.arange(0, 2*np.pi, np.pi/100)
a,b = 4,2
x = a * np.sinh(theta)
y = b * np.cosh(theta)
plt.plot(x,y)
却是斜直线的结果
http://imgur.com/a/EPT4F
想知道原因为何且该如何修正?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.226.172.39
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1497977402.A.29D.html
1F:嘘 tn00364361: 你觉得你贴上来的code可以执行?06/21 08:49
※ 编辑: cj10243 (110.28.65.116), 06/21/2017 09:15:53
2F:推 APM99: theta 取的不好 ,theta的含意很特别 06/21 12:06
3F:→ APM99: 想要得到你想要的结果,直接把theta当成普通参数取实数即可 06/21 12:07
4F:→ cj10243: 请问A大意思是把theta 改成别的变数例如t? 06/21 12:34
5F:推 APM99: 参数名称不重要阿 你把值取 -100~100 就可以了(100有点大 06/21 12:37
6F:→ APM99: 你看wiki的双曲线 它们很快就贴近了渐进线 06/21 12:38
7F:→ APM99: 你这篇画的图没大问题 因为双曲线「看起来」就是直线 06/21 12:38
8F:→ cj10243: 了解,我尝试透过增加dpi改变弯曲程度,但图还是很直 06/21 15:58
9F:→ cj10243: 所以真的如A大所说只能画出看起来很直的双曲线吗? 06/21 16:00
10F:→ cj10243: 还是有什麽关键字呢?感谢 06/21 16:00
11F:推 APM99: 你需要做的是设定x,y轴 例如 plt.axis([-5, 5, -5, 5]) 06/21 16:32
12F:→ APM99: 把图的x轴,y轴设在 -5~5之间 它就会是曲线 06/21 16:32
13F:→ APM99: 之外的范围呢?它「看起来」就会是直线,双曲线长的就是这样 06/21 16:33
14F:→ APM99: 建议 1.设定x,y轴 2.修正theta数值 3.你需要另一半的双曲 06/21 16:34
15F:→ APM99: 线叠图 . 你引用的公式中 cosh 恒正,所以你只会有单曲线 06/21 16:35
16F:→ APM99: <不要对双曲线有 曲线的幻想 现实是残酷的,可以试求斜率> 06/21 16:41
17F:→ APM99: theta = np.arange(-2*np.pi, 2*np.pi, np.pi/100) 06/21 16:49