python p问题

2024-05-13 09:23:28 发布

您现在位置:Python中文网/ 问答频道 /正文

所以用这段代码我需要画一条指数衰减的IV曲线,但它的方向不对,需要镜像/翻转。x值未绘制在正确的轴上,需要切换。当给定一个电压时,它会显示出电流指数下降的关系。我试过各种调试,但它一直显示出指数增长或同样的衰减。你知道吗

import matplotlib.pyplot as plt
import numpy as np
xdata=np.linspace(23,0)# voltage data
ydata=np.exp(xdata)# current data
plt.plot(ydata,xdata)
plt.title(r'IV-curve')
plt.xlabel('Voltage(V)')
plt.ylabel('Current(I)')
plt.show()

它看起来是这样的:http://imgur.com/a/NJf3g

另外,请容忍我,因为这可能看起来像是一个微不足道的代码,但实际上我是上周第一次开始编写代码的,所以我会遇到一些麻烦:)


Tags: 代码importdata镜像asnp绘制plt
2条回答

问题是您使用的ydata没有正确排序。你知道吗

解决办法很简单。重新排序ydata。你知道吗

这样做:

import matplotlib.pyplot as plt
import numpy as np

xdata = np.linspace(23,0)# voltage data
ydata = np.exp(xdata)# current data
ydata = np.sort(ydata)

plt.plot(ydata,xdata)
plt.title(r'IV-curve')
plt.xlabel('Voltage(V)')
plt.ylabel('Current(I)')

plt.show()

结果:

enter image description here

看起来可能

plt.plot(ydata,xdata)

应该是

plt.plot(xdata,ydata)

这将修正轴。但你仍然不会得到衰减指数。为什么?不是因为绘图而是因为你的数据。你的数据呈指数增长。如果你想用

ydata=np.exp(-xdata)

xdata前面的减号。你知道吗

相关问题 更多 >