小编din*_*dom的帖子

如何在matplotlib中用datetime绘制ohlc烛台?

我需要每隔5分钟(一支蜡烛)绘制交易数据

这是我到目前为止:

from matplotlib.finance import candlestick2_ohlc
fig, ax = plt.subplots()
candlestick2_ohlc(ax,quotes['open'],quotes['high'],quotes['low'],quotes['close'],width=0.6)
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

结果

我需要改进它:

  1. 蓝色标记显示xticks显示int,我希望它们的datetime格式.

  2. 红色标记显示状态栏中的x值.我希望它也是datetime格式化的.

这是quotes演示数据:

array([ (1459388100, 29.799999237060547, 29.799999237060547, 29.799999237060547, 29.799999237060547, 148929.0, 450030016.0),
   (1459388400, 29.799999237060547, 29.979999542236328, 29.709999084472656, 29.920000076293945, 10395.0, 31069984.0),
   (1459388700, 29.959999084472656, 30.18000030517578, 29.719999313354492, 30.149999618530273, 38522.0, 114999968.0),
   (1459389000, 30.170000076293945, 30.479999542236328, 30.0, 30.149999618530273, 29823.0, 90220032.0),
   (1459389300, 30.149999618530273, 30.75, 30.1299991607666, 30.549999237060547, 38903.0, 118620032.0),
   (1459389600, 30.59000015258789, 30.93000030517578, 30.559999465942383, 30.65999984741211, 42308.0, 130000000.0),
   (1459389900, 30.6200008392334, 30.690000534057617, 30.3799991607666, 30.3799991607666, 20209.0, 61689984.0),
   (1459390200, 30.3700008392334, 30.489999771118164, 30.18000030517578, …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib

14
推荐指数
4
解决办法
3万
查看次数

如何设置自定义字体与matplotlib全局字体的自定义路径?

我的应用程序中有一个自定义字体

app_path='/home/user1/myapp'
fname='/home/user1/myapp/font/myfont.ttf'
Run Code Online (Sandbox Code Playgroud)

要将globlal字体设置为matplotlib,文档会这样说:

plt.rcParams['font.sans-serif']=['xxx font']
Run Code Online (Sandbox Code Playgroud)

但它只适用于已经在系统字体路径中的字体,我必须在我的应用程序路径 '/home/user1/myapp/font/myfont.ttf'中使用我的自定义字体

我知道有这样的方式:

fname='/home/user1/myapp/font/myfont.ttf'
myfont=fm.FontProperties(fname=fname)
ax1.set_title('title test',fontproperties=myfont)
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的,我不想一直设置' fontproperties ',因为有一些代码要改变

python fonts matplotlib

6
推荐指数
3
解决办法
3474
查看次数

如何在一个轴上绘制两个 barh?

这是一个包含 500 多个项目的 Pandas 系列,我选择前 10 个和后 10 个在一个 matplotlib 轴上绘制,这是我手动绘制的图片:

前 10 名和后 10 名的销售额

数据在这里:

bottom10
Out[12]: 
0   -9.823127e+08
1   -8.069270e+08
2   -6.030317e+08
3   -5.709379e+08
4   -5.224355e+08
5   -4.755464e+08
6   -4.095561e+08
7   -3.989287e+08
8   -3.885740e+08
9   -3.691114e+08
Name: amount, dtype: float64

top10
Out[13]: 
0    9.360520e+08
1    9.078776e+08
2    6.603838e+08
3    4.967611e+08
4    4.409362e+08
5    3.914972e+08
6    3.547471e+08
7    3.538894e+08
8    3.368558e+08
9    3.189895e+08
Name: amount, dtype: float64



top10.barh(top10.index,top10.amount,color='red',align='edge')
bottom10.barh(bottom10.index,bottom10.amount,color='green',align='edge')
Run Code Online (Sandbox Code Playgroud)

现在它显示为这样,这不是我想要的: 不是我想要的.

什么是正确的绘图方法?

python plot matplotlib pandas

1
推荐指数
1
解决办法
916
查看次数

标签 统计

matplotlib ×3

python ×3

fonts ×1

numpy ×1

pandas ×1

plot ×1