मैंने नीचे दिए गए कोड के साथ एक लाइन ग्राफ बनाया है और मैं y = 1 पर एक क्षैतिज रेखा जोड़ने की कोशिश कर रहा हूं। मैंने प्लॉटली साइट पर निर्देशों का पालन करने की कोशिश की लेकिन यह अभी भी नहीं दिख रहा है। क्या किसी को पता है क्यों?

date = can_tot_df.date
growth_factor = can_tot_df.growth_factor

trace0 = go.Scatter(
            x=date,
            y=growth_factor,
            mode = 'lines',
            name = 'growth_factor'
)

fig = go.Figure()
fig.add_shape(
        type='line',
        x0=date.min(),
        y0=1,
        x1=date.max(),
        y1=1,
        line=dict(
            color='Red',
        )
)


data = [trace0]
iplot(data)
9
gboge 29 मार्च 2020, 00:06
यदि आपको अपने आवश्यक उत्तर मिल गए हैं, तो कृपया किसी एक सुझाव को स्वीकृत समाधान के रूप में चिह्नित करने पर विचार करें
 – 
vestland
14 मई 2020, 09:46

4 जवाब

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

साथ ही, आपको प्लॉटली के नए संस्करणों के लिए iplot के बारे में चिंता करने की आवश्यकता नहीं है। आप केवल fig.show() चलाकर अपना चार्ट उतनी ही आसानी से प्रदर्शित कर सकते हैं। नीचे दिया गया आंकड़ा और कोड नमूना आपको दिखाएगा कि fig.show() का उपयोग कैसे करें और अक्ष इकाइयों के संदर्भ में अपनी रेखाओं को कैसे परिभाषित करें।

प्लॉट:

enter image description here

कोड:

import plotly.graph_objects as go
import numpy as np

x = np.arange(10)

fig = go.Figure(data=go.Scatter(x=x, y=x**2))

fig.add_shape(type='line',
                x0=0,
                y0=40,
                x1=8,
                y1=40,
                line=dict(color='Red',),
                xref='x',
                yref='y'
)


fig.show()

xref='x' का एक विकल्प xref='paper' है। अब आप x0 को 0 और 1 के बीच एक फ्लोट के रूप में निर्दिष्ट कर सकते हैं, जो प्लॉट के शुरू और अंत तक फैला हुआ है।

9
vestland 28 जिंदा 2021, 02:02
1
धन्यवाद। मैं सीएस के लिए नया हूँ। क्या आप मेरे जैसे नौसिखियों के लिए कोई अच्छा प्लॉटली ट्यूटोरियल सुझा सकते हैं? मैं इस समय प्लॉटली वेबसाइट से बहुत ज्यादा कॉपी और पेस्ट कर रहा हूं, इस बात का कोई सुराग नहीं है कि क्या है।
 – 
gboge
30 मार्च 2020, 02:24
- सच कहूं, तो मैंने इस तरह से साजिश रची ... बस इसका उपयोग करके और लगातार डॉक्स का जिक्र करते हुए - जो शानदार ढंग से किया गया है। जिस चीज ने सबसे ज्यादा मदद की वह सिर्फ यह महसूस करना था कि डेटा संरचना केवल lists और dicts का एक गुच्छा है। शुभकामनाएं!
 – 
S3DEV
30 मार्च 2020, 11:10
1
लोगों ने साजिश से अपने उत्पाद के लिए एक बिल्कुल शानदार दस्तावेज तैयार किया है। आपको सब कुछ यहां मिलेगा। और आपको आरंभ करना और फंडामेंटल
 – 
vestland
31 मार्च 2020, 00:44
प्लॉट वाले प्लॉट के डेटा और लेआउट संरचना के शानदार विज़ुअलाइज़ेशन के लिए, यह.
 – 
vestland
31 मार्च 2020, 00:46

आप अपने fig ऑब्जेक्ट में लाइन जोड़ रहे हैं, लेकिन fig iplot() फ़ंक्शन में पास नहीं हो रहा है, केवल आपका data। इसलिए केवल ट्रेस प्लॉट किया जा रहा है।

यदि आप प्लॉटली के देर से संस्करण का उपयोग कर रहे हैं, तो नया सिंटैक्स आपको केवल fig ऑब्जेक्ट का उपयोग करके इस प्लॉट को बनाने की अनुमति देता है, जैसे:

from plotly import graph_objects as go

fig = go.Figure()

# Contrived dataset for example.
x = [1, 2, 3, 4]
y = [i**2 for i in x]

fig.add_trace(go.Scatter(
              x=x,
              y=y,
              mode = 'lines',
              name = 'growth_factor'))

fig.add_shape(type='line',
              x0=min(x),
              y0=5,
              x1=max(x),
              y1=5,
              line=dict(color='Red'))

fig.update_shapes(dict(xref='x', yref='y'))

fig.show()

ये हैं प्लॉटली सुविधा के लिए दस्तावेज़।

1
S3DEV 30 मार्च 2020, 11:26

यदि आप सबप्लॉट्स का उपयोग करते हैं, तो मुझे सबप्लॉट में दूसरी लाइन जोड़ने का यह सबसे आसान तरीका है। यह उदाहरण सभी x मानों के लिए y=80 पर एक क्षैतिज रेखा खींचता है

from plotly.subplots import make_subplots

fig = make_subplots(rows=2, cols=1,
                    shared_xaxes=True,
                    vertical_spacing=0.02)
[some graph]

fig.add_trace(go.Scatter(
        name='Y=80',
        x = [df['date'].min(), df['date'].max()],
        y = [80, 80],
        mode = "lines",
        marker = dict(color = 'rgba(80, 26, 80, 0.8)')
    ),row=1, col=1)

मुझे github पर समाधान मिला:

0
endo.anaconda 24 मई 2021, 05:01
df = df
fig = px.scatter(df, x="date", y="growth_factor", mode = 'lines',
      hover_name=df['growth_factor'] )

fig.update_layout(shapes=[
dict(
  type= 'line',
  yref= 'y', y0= 1, y1= 1,   # adding a horizontal line at Y = 1
  xref= 'paper', x0= 0, x1= 1
     ) 
])

अंजीर। शो ()

2
DSBLR 5 नवम्बर 2020, 04:43