۳۵٪ تخفیف روی تمامی دوره ها🔥 + دوره زبان تخصصی و مهاجرت با ارزش ۵ میلیون تومان بصورت هدیه
۰ ثانیه
۰ دقیقه
۰ ساعت
۶ زهرا مسیبی
تبدیل ایندکس به تاریخ
جامعه هوش مصنوعی ایجاد شده در ۱۵ خرداد ۱۴۰۱

با توجه به کدهای زیر می‌خواستم نموداری داشته باشم که بر اساس تاریخ بیشترین و کمترین مقدار بیت کوین را نمایش دهد. تاریخ را ایندکس کردم اما بعد از اجرا روی نمودار تاریخ را ندیم . کدی که زدم درست هست؟

import pandas as pd
from bokeh.plotting import figure,output_file,show
from bokeh.models import ColumnDataSource
from bokeh.models.tools import HoverTool
output_file("btc.html")
dataB=pd.read_csv('BTC-USD.csv')
dataB['Date']= dataB['Date'].apply(pd.to_datetime)
dataSourcB= ColumnDataSource(dataB)
pB=figure()
pB.circle(source=dataSourcB, x='Low' , y='High',color='skyblue', size=20)
pB.title.text="بیت کوین "
pB.xaxis.axis_label='کمترین'
pB.yaxis.axis_label="بیشترین"
show(pB)

ممنون

سلام

مقدار x رو باید برابر Date بگذارید:

pB.circle(source=dataSourcB, x='Date' , y='High',color='skyblue', size=20)
pB.circle(source=dataSourcB, x='Date' , y='Low',color='skyblue', size=20)

دو تا فیگور باید بسازید یکیش High و یکی دیگش Low رو نشون میده

مسعود کاویانی ۱۶ خرداد ۱۴۰۱، ۱۸:۱۰

سلام



import pandas as pd
from bokeh.plotting import figure,output_file,show
from bokeh.models import ColumnDataSource
from bokeh.models.tools import HoverTool
output_file("btc.html")
dataB=pd.read_csv('BTC-USD.csv')
dataB['Date']= dataB['Date'].apply(pd.to_datetime)
print(dataB)
dataSourcB= ColumnDataSource(dataB)
pB=figure()
pB.circle(source = dataSourcB, x= 'dataB' , y='High',color='red', size=20)
# pB.circle(source=dataSourcB, x= 'dataB' , y='High',color='skyblue', size=20)
pB.title.text="بیت کوین "
pB.xaxis.axis_label='کمترین'
pB.yaxis.axis_label="بیشترین"
show(pB)

وقتی اجرا می‌کنم کلا نمودار را نشان نمی‌دهد ضمن اینکه وقتی پرینت می‌گیرم تاریخ ایندکس نشده.

ممنون ام

زهرا مسیبی ۱۷ خرداد ۱۴۰۱، ۰۳:۵۲

نه توی کد توضیح دادم که باید دو تا نمودار بکشید

نیازی نیست که زمان را index کنید

مسعود کاویانی ۲۴ خرداد ۱۴۰۱، ۲۰:۲۴
import pandas as pd
from bokeh.plotting import figure,output_file,show
from bokeh.models import ColumnDataSource
from bokeh.models.tools import HoverTool
output_file("btc.html")
dataB=pd.read_csv('BTC-USD.csv')
dataSourcB= ColumnDataSource(dataB)
pB=figure()
pB.circle(source = dataSourcB, x= 'Date' , y='High',color='red', size=20)
pB.title.text="بیت کوین "
pB.xaxis.axis_label='کمترین'
pB.yaxis.axis_label="بیشترین"
show(pB)

ایندکس دیتا را حذف کردم فقط چهارچوب نمودار را دارم و نمودار رسم نمیشه برای عنوان هم فقط عنوان نمودار را دارم و عنوان محورها درج نمیشه.

ممنون ام

زهرا مسیبی ۲۶ خرداد ۱۴۰۱، ۰۷:۳۵

به جای تاریخ یک ستون دیگه را گذاشتم مشکل حل شد فکر می‌کنم فرمت تاریخ مشکل داشته باشه

p = figure()
p.circle( source= dataSourc  , x='Volume', y='High', color='red', )

دیتا قیمت بیت کوین بود که از یاهو فاینس گرفتم:

Date,Open,High,Low,Close,Adj Close,Volume
2021-06-05,36880.156250,37917.714844,34900.414063,35551.957031,35551.957031,35959473399

چطوری می‌تونم از تاریخ استفاده کنم؟

ممنون ام


زهرا مسیبی ۲۷ خرداد ۱۴۰۱، ۱۶:۴۸

مشکل ام حل شد. باید تارخ را به فرمت تاریخ تبدیل می‌کردم.

dataB['Date'] = pd.to_datetime(dataB['Date'], format=('%Y/%m/%d'))
زهرا مسیبی ۲۸ خرداد ۱۴۰۱، ۰۴:۲۴