Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用matplotlib或plotly Python3打印颜色数组_Python_Python 3.x_Matplotlib_Plotly - Fatal编程技术网

使用matplotlib或plotly Python3打印颜色数组

使用matplotlib或plotly Python3打印颜色数组,python,python-3.x,matplotlib,plotly,Python,Python 3.x,Matplotlib,Plotly,我正在尝试使用OHLC值绘制蜡烛。但我现在只想绘制蜡烛的颜色。 我试图预测收盘价,并使用matplotlib绘制它。见下文: plt.figure(figsize=(21,7)) plt.plot(yTest,label='Price',color='blue') plt.plot(test_pred_list,label='Predicted',color='red') plt.title('Price vs Predicted') plt.legend(loc='upper left') p

我正在尝试使用OHLC值绘制蜡烛。但我现在只想绘制蜡烛的颜色。
我试图预测收盘价,并使用matplotlib绘制它。见下文:

plt.figure(figsize=(21,7))
plt.plot(yTest,label='Price',color='blue')
plt.plot(test_pred_list,label='Predicted',color='red')
plt.title('Price vs Predicted')
plt.legend(loc='upper left')
plt.show()

我愿意实现的是,将图形绘制成一个大小相同的盒子,盒子的颜色应该与测试和预测中蜡烛的颜色相似。请参见我愿意实现的示例图像:

上述输出仅包括蜡烛的颜色,该颜色由检查打开和关闭值决定

下面是示例数据。收盘价的价格和价格

已编辑
请建议我无法实现上述目标,然后可以使用此类数据集实现以下目标。

如果我理解的话,你真的只想画一系列的矩形。这可以通过在matplotlib中添加由“打开>关闭”着色的面片来实现

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
from matplotlib.patches import Rectangle

def draw_rects(ax, quotes, width=5., height=1., yloc=1., colorup='g', 
               colordown='r', edgecolor='k', alpha=1.0):

    OFFSET = width / 2.0
    patches = []
    for q in quotes:
        t, open, close, high, low = q[:5]
        if close > open:
            color = colorup
        else:
            color = colordown

        rect = Rectangle(
            xy=(t - OFFSET, yloc),
            width=width,
            height=height,
            facecolor=color,
            edgecolor=edgecolor,
        )
        rect.set_alpha(alpha)
        patches.append(rect)
        ax.add_patch(rect)

    ax.autoscale_view()

    return patches

fig, ax = plt.subplots(1,1)
quotes = np.genfromtxt("./out.csv", skip_header=1, delimiter=',')
p1 = draw_rects(ax, quotes, yloc=1)
p2 = draw_rects(ax, quotes, yloc=4)
labels = [item.get_text() for item in ax.get_yticklabels()]
labels[2] = 'Predicted'
labels[8] = 'Real'
ax.set_yticklabels(labels)
plt.show()
看起来像这样

您可以根据需要调整宽度、边缘颜色等。我已经绘制了两者的真实数据,因为您预测的链接的格式不同。例如,我在不同的yloc中将相同的数据添加到了
draw_rects
,并更改了y记号标签

out.csv中的数据只是

time,open,high,low,close
10,1.1661,1.16615,1.16601,1.16603
20,1.16623,1.16623,1.1661,1.1661
30,1.16617,1.16624,1.16617,1.16623
40,1.16613,1.16618,1.16612,1.16618
50,1.16615,1.16615,1.16612,1.16613
60,1.16613,1.16615,1.16613,1.16615
70,1.16617,1.16621,1.16612,1.16612
80,1.16618,1.16626,1.16615,1.16617
90,1.16614,1.16619,1.16614,1.16618
100,1.16618,1.16618,1.16609,1.16614

谁能帮帮我吗?我不知道如何才能像问题中提到的那样进行绘图matplotlib finance toolbox有ohlc,请参见,例如,但它不包括在内,因此您需要从我知道的情况中了解。事实上,我不愿意接受OHLC。我已经做到了。我只想要我在问题中提到的那个。请让我知道。我只想显示蜡烛的颜色,而不是蜡烛,因为它们有不同的大小,我希望它们的大小必须保持不变。查看图像,如堆叠的条形图,但应反映条形图的值。请让我知道。是的,像这样的。但是我能把实际值和预测值结合起来吗?此外,我不会只使用打开和关闭。这足以决定蜡烛的颜色。你能修改代码让我接受你的答案吗?如果可能的话,我能在其中使用熊猫数据帧吗?或者我需要转换成numpy数组并使用它吗?或者它不会有任何影响?我是否可以在单独的数组中计算颜色,并通过保持y常量来使用它?我在示例中添加了如何绘制两组数据并标记y轴的方法。我个人只想使用
df.values
从pandas获得numpy数组,但是您可以调整上述函数以使用DataFrames。如果有可能,上述代码只是在一行中绘制一组矩形。您可以根据需要定制它。