pythonargumentslinegraphplotly-express

All arguments should have the same length. The length of argument `y` is 6, whereas the length of previous arguments ['year'] is 100


Library that I used

import numpy as np
import pandas as pd
import seaborn as sns
import plotly.express as px 
import matplotlib.pyplot as plt

Dataset https://i.sstatic.net/k4hIL.png

My Code

sound_features = ['acousticness', 'danceability', 'energy', 'instrumentalness', 'liveness', 'valence']
fig = px.line(year_data, x='year', y=sound_features)
fig.show()

My Output https://i.sstatic.net/iF529.png

Ideal Output https://i.sstatic.net/Fwsop.png


Solution

  • let's try this way

    plot_data = [
        go.Scatter(
            x=year_data['year'],
            y=year_data['acousticness'],
            name = 'acousticness'
        ),
        go.Scatter(
            x=year_data['year'],
            y=year_data['danceability'],
            name = 'danceability'
        ),
        go.Scatter(
            x=year_data['year'],
            y=year_data['energy'],
            name = 'energy'
        ),
        go.Scatter(
            x=year_data['year'],
            y=year_data['instrumentalness'],
            name = 'instrumentalness'
        ),
        go.Scatter(
            x=year_data['year'],
            y=year_data['liveness'],
            name = 'liveness'
        ),
        go.Scatter(
            x=year_data['year'],
            y=year_data['valence'],
            name = 'valence'
        )
    ]
    
    plot_layout = go.Layout(
            xaxis={"type": "category"},
            title='Sound features'
        )
    fig = go.Figure(data=plot_data, layout=plot_layout)
    pyoff.iplot(fig)