Python 数据科学入门:Matplotlib 基本的自定义

在 Matplotlib 教程中,我们将讨论一些可能的图表自定义。 为了开始修改子图,我们必须定义它们。 我们很快会谈论他们,但有两种定义并构造子图的主要方法。 现在,我们只使用其中一个,但我们会很快解释它们。

Matplotlib 教程中,我们将讨论一些可能的图表自定义。 为了开始修改子图,我们必须定义它们。 我们很快会谈论他们,但有两种定义并构造子图的主要方法。 现在,我们只使用其中一个,但我们会很快解释它们。

在 Matplotlib 教程中,我们将讨论一些可能的图表自定义。 为了开始修改子图,我们必须定义它们。 我们很快会谈论他们,但有两种定义并构造子图的主要方法。 现在,我们只使用其中一个,但我们会很快解释它们。

现在,修改我们的graph_data函数:

  1. defgraph_data(stock):
  2. fig=plt.figure()
  3. ax1=plt.subplot2grid((1,1),(0,0))1234

为了修改图表,我们需要引用它,所以我们将它存储到变量fig。 然后我们将ax1定义为图表上的子图。 我们在这里使用subplot2grid,这是获取子图的两种主要方法之一。 我们将深入讨论这些东西,但现在,你应该看到我们有 2 个元组,它们提供了(1,1)和(0,0)。 1,1表明这是一个 1×1 网格。 然后0,0表明这个子图的『起点』将为0,0。

接下来,通过我们已经编写的代码来获取和解析数据:

  1. stock_price_url='http://chartapi.finance.yahoo.com/instrument/1.0/'+stock+'/chartdata;type=quote;range=10y/csv'
  2. source_code=urllib.request.urlopen(stock_price_url).read().decode()
  3. stock_data=[]
  4. split_source=source_code.split('\n')
  5. forlineinsplit_source:
  6. split_line=line.split(',')
  7. iflen(split_line)==6:
  8. if'values'notinlineand'labels'notinline:
  9. stock_data.append(line)
  10. date,closep,highp,lowp,openp,volume=np.loadtxt(stock_data,
  11. delimiter=',',
  12. unpack=True,
  13. converters={0:bytespdate2num('%Y%m%d')})1234567891011121314

下面,我们这样绘制数据:

  1. ax1.plot_date(date,closep,'-',label='Price')1

现在,由于我们正在绘制日期,我们可能会发现,如果我们放大,日期会在水平方向上移动。但是,我们可以自定义这些刻度标签,像这样:

  1. forlabelinax1.xaxis.get_ticklabels():
  2. label.set_rotation(45)12

这将使标签转动到对角线方向。 接下来,我们可以添加一个网格:

  1. ax1.grid(True)1

然后,其它东西我们保留默认,但我们也可能需要略微调整绘图,因为日期跑到了图表外面。 记不记得我们在第一篇教程中讨论的configure subplots按钮? 我们不仅可以以这种方式配置图表,我们还可以在代码中配置它们,以下是我们设置这些参数的方式:

  1. plt.subplots_adjust(left=0.09,bottom=0.20,right=0.94,top=0.90,wspace=0.2,hspace=0)1

现在,为了防止我们把你遗留在某个地方,这里是完整的代码:

  1. importmatplotlib.pyplotasplt
  2. importnumpyasnp
  3. importurllib
  4. importmatplotlib.datesasmdates
  5. defbytespdate2num(fmt,encoding='utf-8'):
  6. strconverter=mdates.strpdate2num(fmt)
  7. defbytesconverter(b):
  8. s=b.decode(encoding)
  9. returnstrconverter(s)
  10. returnbytesconverter
  11. defgraph_data(stock):
  12. fig=plt.figure()
  13. ax1=plt.subplot2grid((1,1),(0,0))
  14. stock_price_url='http://chartapi.finance.yahoo.com/instrument/1.0/'+stock+'/chartdata;type=quote;range=10y/csv'
  15. source_code=urllib.request.urlopen(stock_price_url).read().decode()
  16. stock_data=[]
  17. split_source=source_code.split('\n')
  18. forlineinsplit_source:
  19. split_line=line.split(',')
  20. iflen(split_line)==6:
  21. if'values'notinlineand'labels'notinline:
  22. stock_data.append(line)
  23. date,closep,highp,lowp,openp,volume=np.loadtxt(stock_data,
  24. delimiter=',',
  25. unpack=True,
  26. converters={0:bytespdate2num('%Y%m%d')})
  27. ax1.plot_date(date,closep,'-',label='Price')
  28. forlabelinax1.xaxis.get_ticklabels():
  29. label.set_rotation(45)
  30. ax1.grid(True)#,color='g',linestyle='-',linewidth=5)
  31. plt.xlabel('Date')
  32. plt.ylabel('Price')
  33. plt.title('InterestingGraph\nCheckitout')
  34. plt.legend()
  35. plt.subplots_adjust(left=0.09,bottom=0.20,right=0.94,top=0.90,wspace=0.2,hspace=0)
  36. plt.show()
  37. graph_data('TSLA')1234567891011121314151617181920212223242526272829303132333435363738394041424344454647

结果为:

Python 数据科学入门10:Matplotlib 基本的自定义

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月6日 06:57
下一篇 2023年5月6日 06:57

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信