String Python 2.7运行时格式字符串中无法识别的字符G

String Python 2.7运行时格式字符串中无法识别的字符G,string,python-2.7,numpy,matplotlib,String,Python 2.7,Numpy,Matplotlib,我有Python2.7 Win 32,并安装了Matplotlib、Numpy、PyParsing和Dateutil。在空闲状态下,我在代码中放置: import matplotlib import matplotlib.pyplot as plt import matplotlib.ticker as mticker import matplotlib.dates as mdates import numpy as np def graphRawFX () : date=mdates

我有Python2.7 Win 32,并安装了Matplotlib、Numpy、PyParsing和Dateutil。在空闲状态下,我在代码中放置:

import matplotlib
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import matplotlib.dates as mdates
import numpy as np

def graphRawFX () :
    date=mdates.strpdate2num('%Y%m%d%H%M%S')
    bid,ask = np.loadtxt,unpack=True,('GPBUSD1d.txt')
    delimiter=',',
    converters={0:mdates.strpdate2num('%Y%m%d%H%M%S') }
    fig = plt.figure(figsize=(10,7))
    ax1 = plt.subplot2grid((40,40), (0,0), rowspan=40, colspan=40)

    ax1.plot(date,bid)
    ax1.plot(date,ask)

ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H:%M:%S'))

plt.grid(True)
plt.show()
然后我进入:

rawGraphFX()
这将导致以下错误:

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    graphRawFX()
  File "C:/Users/Emanuel/Desktop/graph", line 16, in graphRawFX
    ax1.plot(date,ask)
  File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 4137, in plot
    for line in self._get_lines(*args, **kwargs):
  File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 317, in _grab_next_args
    for seg in self._plot_args(remaining, kwargs):
  File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 276, in _plot_args
    linestyle, marker, color = _process_plot_format(tup[-1])
  File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 129, in _process_plot_format
    'Unrecognized character %c in format string' % c)
ValueError: Unrecognized character G in format string
>>> 
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
graphRawFX()
文件“C:/Users/Emanuel/Desktop/graph”,第16行,在graphRawFX中
ax1.绘图(日期,询问)
文件“C:\Python27\lib\site packages\matplotlib\axes.py”,第4137行,在绘图中
对于自身中的行。获取行(*args,**kwargs):
文件“C:\Python27\lib\site packages\matplotlib\axes.py”,第317行,在_grab\u next\u args中
对于seg in self.\u plot\u args(剩余,kwargs):
文件“C:\Python27\lib\site packages\matplotlib\axes.py”,第276行,在绘图参数中
线型、标记、颜色=\处理\打印\格式(tup[-1])
文件“C:\Python27\lib\site packages\matplotlib\axes.py”,第129行,采用_process\u plot\u格式
'格式字符串“%c”中无法识别的字符%c)
ValueError:格式字符串中无法识别的字符G
>>> 

这可能很容易解决,但我需要帮助,因为我对此感到沮丧。

这两行代码至少有两个问题:

date=mdates.strpdate2num('%Y%m%d%H%M%S')
bid,ask = np.loadtxt,unpack=True,('GPBUSD1d.txt')
第一行将
date
设置为类实例,该类实例将字符串转换为matplotlib样式的日期。但是,您从不提供日期。您需要从某处找到日期字符串,并将此函数应用于它们

这些行中的第二行有两个赋值。它首先将
np.loadtxt
赋值为True,将
unpack
赋值为
'GPBUSD1d.txt'
。因此,它将
bid
赋值为True,将
ask
赋值为
'GPBUSD1d.txt'
。当matplotlib试图将
'GPBUSD1d.txt'
中的
G
解释为某种格式指令时,正是后者导致了
无法识别的字符
错误。您可能打算这样做:

bid, ask = np.loadtxt('GPBUSD1d.txt', unpack=True)

这将调用函数
np.loadtxt
,该函数将加载文件
GPBUSD1d.txt'
,并将其转置(“解包”)。

您能告诉我日期字符串是什么吗?它的功能是什么呢?看起来你正试图根据日期来划分价格。该函数的目的是将日期从现有的输入格式(指定“%Y%m%d%H%m%S”作为输入格式)转换为matplotlib可以理解的格式。日期从何而来?名为GBP USDAD.txt的文件。它说明了年份、日期、月份、小时、分钟和秒。@BenthePyro.txt英镑USDAD.txt是否也包含出价、询问数据?您能显示文件中的几行样本吗?@BenthePyro您的数据是逗号分隔的
np.loadtxt
不会猜到;你必须明确地告诉它。另外,您希望第一列作为字符串,以便可以将其馈送到
date
。所以:
datestr,bid,ask=np.loadtxt('GPBUSD1d.txt',分隔符=',',dtype=np.dtype(np.str,np.float,np.float),unpack=True)