当前位置:首页 » 编程语言 » python横坐标日期

python横坐标日期

发布时间: 2025-05-21 08:19:44

1. python量化教程:不得不学的K线图“代码复制可用”

不管是对量化分析师还是普通的投资者来说,K线图(蜡烛图)都是一种很经典、很重要的工具。在K线图中,它会绘制每天的最高价、最低价、开盘价和收盘价,这对于我们理解股票的趋势以及每天的多空对比很有帮助。

一般来说,我们会从各大券商平台获取K线图,但是这种情况下获得的K线图往往不能灵活调整,也不能适应复杂多变的生产需求。因此我们有必要学习一下如何使用Python绘制K线图。

需要说明的是,这里mpl_finance是原来的matplotlib.finance,但是现在独立出来了(而且好像没什么人维护更新了),我们将会使用它提供的方法来绘制K线图;tushare是用来在线获取股票数据的库;matplotlib.ticker中有个FuncFormatter()方法可以帮助我们调整坐标轴;matplotlib.pylab.date2num可以帮助我们将日期数据进行必要的转化。

我们以上证综指18年9月份以来的行情为例。

我们先使用mpl_finance绘制一下,看看是否一切正常。

可以看到,所有的节假日包括周末,在这里都会显示为空白,这对于我们图形的连续性非常不友好,因此我们要解决掉他们。

可以看到,空白问题完美解决,这里我们解释一下。由于matplotlib会将日期数据理解为 连续数据 ,而连续数据之间的间距是有意义的,所以非交易日即使没有数据,在坐标轴上还是会体现出来。连续多少个非交易日,在坐标轴上就对应了多少个小格子,但这些小格子上方并没有相应的蜡烛图。

明白了它的原理,我们就可以对症下药了。我们可以给横坐标(日期)传入连续的、固定间距的数据,先保证K线图的绘制是连续的;然后生成一个保存有正确日期数据的列表,接下来,我们根据坐标轴上的数据去取对应的正确的日期,并替换为坐标轴上的标签即可。

上边format_date函数就是这个作用。由于前边我们给dates列生成了从0开始的序列连续数据,因此我们可以直接把它当作索引,从真正的日期列表里去取对应的数据。在这里我们要使用matplotlib.ticker.FuncFormattter()方法,它允许我们指定一个格式化坐标轴标签的函数,在这个函数里,我们需要接受坐标轴的值以及位置,并返回自定义的标签。

你学会了吗?

当然,一个完整的K线图到这里并没有结束,后边我们会考虑加入均线、成交量等元素,感兴趣的同学欢迎关注哦!

2. python中使用plt.bar画出的图横坐标是1-10的,我如何画出2,4,6,8这样空两个的横坐标

最简单的柱状代码应该是这样的

# coding: utf-8

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randint(0, 10, size=10)
y = np.random.randint(100, 1000, size=10)

plt.bar(x, y)
plt.show()

3. 怎样用python画一个以时间为横坐标的图

1. 前言

当日期数据作为图表的坐标轴时通常需要特殊处理,应为日期字符串比较长,容易产生重叠现象

2. 设定主/次刻度

2.1 引用库

from matplotlib.dates import DateFormatter, WeekdayLocator, DayLocator, MONDAY,YEARLY1

2.2 获取每月/周/日数据

获取每月一日数据

monthdays = MonthLocator()1

获取每周一的日期数据

mondays = WeekdayLocator(MONDAY) # 主要刻度12

获取每日数据

alldays = DayLocator() # 次要刻度12

2.3 设定主/次刻度

ax.xaxis.set_major_locator(mondays)
ax.xaxis.set_minor_locator(alldays)12

2.4 设定格式

mondayFormatter = DateFormatter('%Y-%m-%d') # 如:2-29-2015
dayFormatter = DateFormatter('%d') # 如:12

ax.xaxis.set_major_formatter(mondayFormatter)1234

3. 字符串旋转

for label in ax1.get_xticklabels(): label.set_rotation(30) label.set_horizontalalignment('right')123

4. 效果

4. Python的 matplotlib画图,怎么把子图的每个横坐标显示出来

ax = subplots(nrows,ncols,sharex,sharey,squeeze,subplot_kw,gridspec_kw,**fig_kw)

创建画布和子图。

nrowsncols表示将画布分割成几行几列 ,

sharexsharey表是共用xy轴的设置。

squeeze bool

a.默认参数为True:额外的维度从返回的Axes(轴)对象中挤出,对于N*1或1*N个子图,返回一个1维数组,对于N*M,N>1和M>1返回一个2维数组。

b.为False,不进行挤压操作:返回一个元素为Axes实例的2维数组,即使它最终是1x1。

subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()来创建每个子图。

subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()来创建每个子图。

gridspec_kw:字典类型,可选参数。把字典的关键字传递给GridSpec构造函数创建子图放在网格里(grid)。

**fig_kw:把所有详细的关键字参数传给figure()函数。

可见你没有办法单独设置某个子图的ax的。

5. python3 折线图上如何显示特殊数据

  • # encoding=utf-8

  • import matplotlib.pyplot as plt

  • # 月份

  • x1 = ['2017-01', '2017-02', '2017-03', '2017-04', '2017-05', '2017-06', '2017-07', '2017-08',

  • '2017-09', '2017-10', '2017-11', '2017-12']

  • # 体重

  • y1 = [86, 85, 84, 80, 75, 70, 70, 74, 78, 70, 74, 80]

  • # 设置画布大小

  • plt.figure(figsize=(16, 4))

  • # 标题

  • plt.title("my weight")

  • # 数据

  • plt.plot(x1, y1, label='weight changes', linewidth=3, color='r', marker='o',

  • markerfacecolor='blue', markersize=20)

  • # 横坐标描述

  • plt.xlabel('month')

  • # 纵坐标描述

  • plt.ylabel('weight')

  • # 设置数字标签

  • for a, b in zip(x1, y1):

  • plt.text(a, b, b, ha='center', va='bottom', fontsize=20)

  • plt.legend()

  • plt.show()

热点内容
php的发展 发布:2025-05-21 13:30:45 浏览:801
yii缓存静态 发布:2025-05-21 13:07:46 浏览:830
c语言宏定义格式 发布:2025-05-21 13:05:13 浏览:4
上传覆盖目录 发布:2025-05-21 12:45:00 浏览:496
pythonencodebase64 发布:2025-05-21 12:43:27 浏览:208
疫情实时源码 发布:2025-05-21 12:41:57 浏览:992
微信开发教程java 发布:2025-05-21 12:40:26 浏览:59
反击第四季ftp 发布:2025-05-21 12:35:04 浏览:215
拼题网脚本 发布:2025-05-21 12:19:38 浏览:193
非c语言 发布:2025-05-21 12:13:38 浏览:456