Csv 更改x值

Csv 更改x值,csv,matplotlib,graphing,Csv,Matplotlib,Graphing,我正在从CSV绘制值,我只是想知道是否可以将x值显示为其他值 例如: 我的代码是: from cycler import cycler import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib.ticker as mticker fig = plt.figure() df = pd.read_csv('CSV_GM_NB_1_0_Functional_Initial_

我正在从CSV绘制值,我只是想知道是否可以将x值显示为其他值

例如:

我的代码是:

from cycler import cycler 
import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker


fig = plt.figure()

df = pd.read_csv('CSV_GM_NB_1_0_Functional_Initial_5_pt.csv', skiprows=8)

data1 = df.ix[:,19:49].T
data2 = df.ix[:,50:80].T
data3 = df.ix[:,81:115].T
data1.columns=df['SN']
data2.columns=df['SN']
data3.columns=df['SN']


ax1 = plt.subplot2grid((6,6), (0,0), rowspan=1, colspan=5)
plt.title('GM_NB')
plt.ylabel('PV')
ax2 = plt.subplot2grid((6,6), (1,0), rowspan=1, colspan=5)
plt.ylabel('PV')
ax3 = plt.subplot2grid((6,6), (2,0), rowspan=4, colspan=5)
plt.ylabel('Point Values')
plt.xlabel('DID')

ax1.plot(df.ix[:,19:49].T)
ax2.plot(df.ix[:,50:80].T)
ax3.plot(df.ix[:,81:115].T)

plt.subplots_adjust(hspace=1.0)
plt.show()
以下是输出:

问题

如您所见,子批次的x值是线性的,从35增加到135。我想知道我是否可以简单地显示这些从0开始到100的值。(我无法更改CSV内的值,也无法更改代码,因为35-135的值具有相应的y值

具体来说,我需要相同的y值,但从视觉上看,我想知道是否可以将x值更改为从0开始,而无需从代码中提取不同的y值

我可能在想是否有这样一个函数

plt.x值(减去35)

这有意义吗?谢谢


<强>只是显示从图/P>>P>中读取的不同值的一些方法。让我们考虑下面的例子,其中x数据从35到135。< /P>

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = 4,2

#Real x data goes from 35 to 135
x = np.linspace(35,135, num=151)
y = np.sinc(np.linspace(-3*np.pi,3*np.pi, num=151))
plt.plot(x,y)

现在要更改比例

方法1:更改数据 这听起来很简单,如果你想改变35的刻度,只需从
x
中减去35即可:

#Method 1: change the x data
x2 = x - 35
plt.plot(x2,y)

方法2:更改标签 我们也可以更改ticklabels。因此,我们首先需要将tickLocatation设置为固定值,并将ticklabels设置为其他一些虚构的值

#Method2:
# plot original data
plt.plot(x,y)
# set original ticks
ticks = np.arange(35,140,20) # [ 35  55  75  95 115 135]
# set ticks to original ticks, 
# but tickabels (second argument) to something different
plt.xticks(ticks, ticks-35)
输出与第一种情况完全相同