मुख्य सामग्री पर जाएं

Bokeh के साथ डेटा विज़ुअलाइज़ेशन ट्यूटोरियल: डेटा स्ट्रक्चर्स का प्लॉटिंग

Bokeh का उपयोग करके विभिन्न डेटा स्ट्रक्चर्स के बुनियादी विज़ुअलाइज़ेशन सीखें।
अपडेट किया गया 25 सित॰ 2026  · 6 मि॰ पढ़ें

AI के साथ खोजें

ChatGPTClaudePerplexity

हमारे पहले Bokeh के साथ डेटा विज़ुअलाइज़ेशन ट्यूटोरियल में, आपने ग्लिफ़्स का उपयोग करके शून्य से विज़ुअलाइज़ेशन बनाना सीखा। अब, आप इसी अवधारणा का विस्तार कर सकते हैं और ऐरेज़ और डाटा फ़्रेम्स जैसे अलग-अलग डेटा स्ट्रक्चर्स से प्लॉट बना सकते हैं। इस ट्यूटोरियल में, आप Bokeh का उपयोग करके NumPy ऐरेज़, Pandas में डाटा फ़्रेम्स, और ColumnDataSource के साथ डेटा कैसे प्लॉट करें, यह सीखेंगे। ColumnDataSource Bokeh का मूल है, जो एक ही डेटा को कई प्लॉट्स और विजेट्स में साझा करना संभव बनाता है।

NumPy ऐरेज़ से Bokeh प्लॉट्स

NumPy ऐरेज़ से लाइन प्लॉट बनाना

# Import packages
import numpy as np
import random
from bokeh.io import output_file, show
from bokeh.plotting import figure

# Create an array
x_array = np.array([10,20,30,40,50,60])
y_array = np.array([50,60,70,80,90,100])

# Create a line plot
plot = figure()
plot.line(x_array, y_array)

# Output plot
show(plot)

NumPy ऐरेज़ से स्कैटर प्लॉट बनाना

# Import packages
import numpy as np
import random
from bokeh.io import output_file, show
from bokeh.plotting import figure

# Create arrays
x_arr = np.array([10,11,12,13,14,15,16])
y_arr = np.array([17,18,19,20,21,22,23])

# Create plot
plot = figure(title = "Scatter plot", x_axis_label = "Label name of x axis", y_axis_label ="Label name of y axis")
plot.circle(x_arr,y_arr, size = 30, alpha = 0.5)

# show plot
show(plot)

इससे निम्न ग्राफ़ प्राप्त होता है:

Pandas डाटा फ़्रेम्स का उपयोग करके प्लॉट बनाना

Pandas डाटा फ़्रेम्स के साथ लाइनों का प्लॉटिंग

इस उदाहरण में डेटा Kaggle से लिया गया है। डेटासेट में दिसंबर 2018 तक पाँच वर्षों के लिए S&P 500 इंडेक्स में शामिल सभी स्टॉक्स हैं। फ़ाइल में सात कॉलम हैं:

  • Date - सप्ताह के दिन की तारीख yy-mm-dd फ़ॉर्मेट में
  • Open - स्टॉक का ओपनिंग प्राइस
  • High - दिन का स्टॉक का अधिकतम प्राइस
  • Low - दिन का स्टॉक का न्यूनतम प्राइस
  • Close - दिन का स्टॉक का क्लोज़िंग प्राइस
  • Volume - दिन में ट्रेड किए गए स्टॉक्स की मात्रा
  • Name - स्टॉक टिकर नाम

हम पाँच साल की अवधि में Google के स्टॉक का रुझान देखना चाहते हैं। पहले, हम Pandas का उपयोग करके डेटा लोड करते हैं और फिर Pandas डाटा फ़्रेम की पहली पाँच पंक्तियाँ जाँचते हैं।

# Import packages
import pandas as pd
# Load data
df = pd.read_csv('all_stocks_5yr.csv')
df.head()
# Focus on Google's stock
df_goog = df[df['Name'] == 'GOOG']
# Convert date column to a time series
df_goog['date'] = pd.to_datetime(df_goog['date'])

plot = figure(title= "Pandas Line Plot", x_axis_type = 'datetime', x_axis_label = 'date', y_axis_label= 'Prices')
plot.line(x = df_goog['date'], y = df_goog['high'])

# Output plot
show(plot)

चार्ट में, तिथियों को x-अक्ष पर रेंडर करने के लिए date कॉलम को datetime में बदलना आवश्यक था। इसके अलावा, लाइन फ़ंक्शन (Bokeh में ग्लिफ़) का उपयोग Google के उच्च प्राइस के लिए टाइम सीरीज़ प्लॉट बनाने के लिए किया गया है।

Pandas डाटा फ़्रेम से स्कैटर प्लॉट बनाना

इस खंड में, हम Kaggle पर उपलब्ध ओपन-सोर्स S&P 500 स्टॉक डेटा का उपयोग करते हैं। इस उदाहरण में, हम Google के स्टॉक प्राइस और Apple के स्टॉक प्राइस के बीच सहसंबंध देखना चाहते हैं। आप सहसंबंध के बारे में अधिक यहाँ जान सकते हैं।

# Import required packages
# Import packages
import pandas as pd
from bokeh.io import output_file, show
from bokeh.plotting import figure

# Load data
df = pd.read_csv('all_stocks_5yr.csv')

# Select Google and Apple stock
df_goog = df[df['Name'] == 'GOOG']
df_apple = df[df['Name'] == 'AAPL']

# Select only 'date' and 'high' columns for Google and Apple
df_goog = df_goog[['date','high']]
df_apple = df_apple[['date','high']]
# Rename 'high' column to 'high_goog' and 'high_apple'
df_goog.rename(columns={'high': 'high_goog'}, inplace=True)
df_apple.rename(columns={'high': 'high_apple'}, inplace=True)

df_merged = pd.merge(df_goog, df_apple, how='inner', on='date')
# See the first five rows
df_merged.head(5)

मर्ज करने से यह सुनिश्चित होता है कि दैनिक प्राइस तारीख के आधार पर एक-दूसरे से मेल खाते हों। यह अलग-अलग तारीखों के प्राइस को सहसंबद्ध करने की समस्या को कम करता है, क्योंकि इससे भ्रामक सांख्यिकीय निष्कर्ष निकल सकते हैं।

# Create scatter plot
plot = figure(title= "Pandas Scatter Plot", x_axis_label = "Apple high prices", y_axis_label= "Google high prices")
plot.circle(x = df_merged['high_apple'], y = df_merged['high_goog'],color = 'red', size = 10, alpha = 0.8)

# Output the plot
show(plot)

सर्किल्स Apple और Google के उच्च प्राइस के बीच संबंध दर्शाते हैं। Google और Apple के स्टॉक प्राइस के बीच सामान्यतः एक सकारात्मक सहसंबंध है।

ColumnDataSource से Bokeh प्लॉट बनाना

ColumnDataSource का उद्देश्य आपको एक ही डेटा का उपयोग करके अलग-अलग प्लॉट बनाने देना है। संक्षेप में, यह कई प्लॉट्स और विश्लेषणों में कॉल करने के लिए डेटा का एक आधार तैयार करने देता है। इससे आपका समय बचेगा, क्योंकि आपको Jupyter Notebook में डेटा बार-बार लोड नहीं करना पड़ेगा।

ColumnDataSource एक Python dictionary के समान है, जहाँ किसी कॉलम के डेटा का मान उसी कॉलम के लिए एक स्ट्रिंग कुंजी नाम से संबद्ध रहता है।

ColumnDataSource का उपयोग करके लाइन प्लॉट बनाना

# Import packages
from bokeh.io import output_file, show
from bokeh.plotting import figure, ColumnDataSource

# Create the ColumnDataSource object
df_goog['date'] = pd.to_datetime(df_goog['date'])
data = ColumnDataSource(df_goog)

# Create time series plot
plot = figure(x_axis_type='datetime',
              title='GOOG high prices ts plot',
             x_axis_label = "Date",
              y_axis_label = "Prices in $")
plot.line(x='date', y = 'high_goog', source = data, color = 'green')
show(plot)

यह प्लॉट दिखाता है कि पाँच साल की अवधि में Google के उच्च प्राइस कैसे बदले, जहाँ प्रत्येक प्राइस पॉइंट को लाइन द्वारा दर्शाया गया है।

इस प्लॉट को बनाने के लिए, हमने पूरे Google स्टॉक डाटा फ़्रेम को ColumnDataSource फ़ंक्शन में पास किया और उसे data नाम के वेरिएबल के रूप में सहेजा।

इसके बाद, हमने source आर्गुमेंट का उपयोग करके इस डेटा को प्लॉट फ़ंक्शन में पास किया। इससे प्लॉट बनाते समय कॉलम नामों का सीधे उपयोग करना संभव हो जाता है, बजाय डाटा फ़्रेम को बार-बार कॉल करने के।

अंत में, हमने डेटा पॉइंट्स को दर्शाने के लिए हरी लाइन जनरेट करने हेतु line फ़ंक्शन का उपयोग किया।

ColumnDataSource का उपयोग करके स्कैटर प्लॉट बनाना

इस कोड में, हमने पूरे Google स्टॉक डाटा फ़्रेम को ColumnDataSource में पास किया (जैसा कि लाइन प्लॉट के उदाहरण में किया था)। डाटा फ़्रेम ColumnDataSource में data नाम के वेरिएबल के रूप में सहेजा जाता है। हम पहले कॉलम नामों को सीधे कॉल करके लाइन प्लॉट बनाते हैं। अंत में, व्यक्तिगत डेटा पॉइंट्स को दर्शाने के लिए हमने लाल डायमंड बनाने हेतु diamond फ़ंक्शन का उपयोग किया।

# Import packages
from bokeh.io import output_file, show
from bokeh.plotting import figure, ColumnDataSource

# Create the ColumnDataSource object
df_goog['date'] = pd.to_datetime(df_goog['date'])
data = ColumnDataSource(df_goog)

# Create time series plot
plot = figure(x_axis_type='datetime',
              title='GOOG high prices ts plot',
             x_axis_label = "Date",
              y_axis_label = "Prices in $")
plot.line(x='date', y = 'high_goog', source = data, color = 'green')
plot.diamond(x='date', y = 'high_goog', source = data, color = 'red')
show(plot)

यह प्लॉट पाँच साल की अवधि में Google के स्टॉक के विकास को दिखाता है, जहाँ लाल डायमंड प्रत्येक प्राइस पॉइंट को दर्शाते हैं।

निष्कर्ष

इस ट्यूटोरियल में Python में आमतौर पर मिलने वाले प्रमुख डेटा स्ट्रक्चर्स का परिचय दिया गया और यह दिखाया गया कि आप उन्हें अपने डेटा को जीवंत बनाने के लिए कैसे उपयोग कर सकते हैं। यद्यपि Python विज़ुअलाइज़ेशन के लिए Bokeh एकमात्र विकल्प नहीं है, यह Matplotlib या Seaborn से अपनी उपयोग में आसानी और इंटरैक्टिव क्षमताओं के कारण अलग नज़र आता है। हमारे अगले ट्यूटोरियल में, आप प्रभावी और इंटरैक्टिव विज़ुअलाइज़ेशन बनाने के लिए लेआउट्स का उपयोग करने का व्यावहारिक अनुभव प्राप्त करेंगे। यदि आप Bokeh द्वारा प्रदान की जाने वाली सभी डेटा विज़ुअलाइज़ेशन संभावनाओं में गहराई से जाना चाहते हैं, तो DataCamp का Interactive Data Visualization with Bokeh कोर्स देखें।

विषय
डेटा विज़ुअलाइज़ेशन
डेटा इंजीनियरिंग
डेटा विश्लेषण