爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 15773|回复: 3

[求助] 用matplotlib中的plt.xticks总是报错

[复制链接]
回帖奖励 6 金钱 回复本帖可获得 3 金钱奖励! 每人限 1 次

新浪微博达人勋

发表于 2018-5-27 15:45:36 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
我现在绘制一张图片,x轴数据为1,2,3,....12,但是绘制的图形x轴标签为2,4,6,8,10,12,我想改成1,2,3....12,但是一直报错,这是我的程序。希望大神能帮忙一下,感激不尽。
  1. quotes_INTC = data_processing('INTC')
  2. quotes_IBM = data_processing('IBM')
  3. plt.subplot(211)
  4. plt.plot(quotes_INTC.index,quotes_INTC,"r-.")
  5. plt.xlim((1,12))
  6. plt.xticks(np.arange(1, 12,1))

  7. plt.subplot(212)
  8. plt.plot(quotes_IBM.index,quotes_IBM,"b-.")
复制代码
报错为:
File "C:/Users/yxk/.spyder-py3/temp.py", line 80, in <module>
    plt.xticks(np.arange(1, 12,1))

TypeError: 'numpy.ndarray' object is not callable

                               
登录/注册后可看大图

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-5-27 16:17:49 | 显示全部楼层

回帖奖励 +3 金钱

此类错误一般是由于内部函数被用作变量名时发生
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-5-27 21:33:02 | 显示全部楼层
lgz 发表于 2018-5-27 16:17
此类错误一般是由于内部函数被用作变量名时发生
  1. import requests
  2. import re
  3. import json
  4. import pandas as pd
  5. import matplotlib.pyplot as plt
  6. from datetime import date
  7. import time
  8. import numpy as np


  9. def retrieve_quotes_historical(stock_code):
  10.     quotes = []
  11.     url = 'https://finance.yahoo.com/quote/%s/history?p=%s' % (stock_code, stock_code)
  12.     r = requests.get(url)
  13.     m = re.findall('"HistoricalPriceStore":{"prices":(.*?),"isPending"', r.text)
  14.     if m:
  15.         quotes = json.loads(m[0])
  16.         quotes = quotes[::-1]
  17.     return  [item for item in quotes if not 'type' in item]

  18. def data_processing(name):
  19.     quotes = retrieve_quotes_historical(name)
  20.     time_INTC=[]
  21.     mon1=[]
  22.     for i in range(len(quotes)):
  23.         x=quotes[i]['date']
  24.         y=date.fromtimestamp(x)
  25.         mon1.append(y.month)
  26.         time_INTC.append(y.strftime('%Y-%m-%d'))
  27.     frame_INTC=pd.DataFrame(quotes,index=time_INTC)
  28.     frame_INTC["month"]=mon1
  29.     ave1=frame_INTC.groupby("month").open.mean()
  30.     return ave1

  31. quotes_INTC = data_processing('INTC')
  32. quotes_IBM = data_processing('IBM')
  33. plt.subplot(211)
  34. plt.plot(quotes_INTC.index,quotes_INTC,"r-.")
  35. plt.xlim((1,12))
  36. plt.xticks(np.arange(1, 12,1))

  37. plt.subplot(212)
  38. plt.plot(quotes_IBM.index,quotes_IBM,"b-.")
复制代码

这是我的代码,感觉没有用到内部函数作为变量名。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-6-15 17:23:59 | 显示全部楼层

回帖奖励 +3 金钱

本帖最后由 QCD 于 2018-6-15 17:26 编辑

你上面的代码我执行是没有问题的。没觉着有什么错误。根据你贴出来的错误,我怀疑是某个地方使用了类似
  1. np.arange(1, 12,1)()
复制代码
本身np.arange输出的就是一个array,无法call
选区_010.png
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表