【问题标题】:Creating a multiline graph using Vincent使用 Vincent 创建多线图
【发布时间】:2013-11-05 06:25:43
【问题描述】:

我正在尝试使用文森特创建多线图。

我有一个 csv 文件,其布局如下:

,wk1,wk2,wk3,wk4,wk5,wk6,wk7,wk8,wk9
Tom J,97,65,82,65,101,84,79,71,83
Lisa R,95,87,95,65,61,78,93,95,56
Rich F,51,111,50,119,84,77,73,84,60
Anne E,63,68,89,70,95,80,56,75,82
Dan M,83,95,36,115,79,79,65,55,69
Mack W,67,89,72,79,47,64,113,94,33

这是我的代码:

import pandas as pd
import vincent

df = pd.read_csv('weekscores.csv', index_col=0)

lines = vincent.Line(df)
lines.axis_titles(x='WEEKS', y='SCORE')
lines.legend(title='Player')
lines.to_json('line.html',html_out=True,html_path='line_template.html')

运行并生成一个图表,但图表中没有显示线:

使用 .grammar() 检查数据我看到每周的分数是这样的:

{'val': 97, 'col': 'wk1', 'idx': 'Tom J'}

感谢您在渲染此内容方面提供的任何帮助。

【问题讨论】:

    标签: python pandas vega vincent


    【解决方案1】:

    这里有几个问题:第一个是文森特(天真地)假设折线图将采用线性比例尺,而在这种情况下,我们实际上需要一个序数比例尺。第二个问题是需要转置数据框,以便索引上的周数。所以,要得到你正在寻找的情节:

    import vincent
    import pandas as pd
    
    df = pd.read_csv('weekscores.csv', index_col=0)
    df = df.T
    df
    Out[27]: 
    Name  Tom J  Lisa R  Rich F  Anne E  Dan M  Mack W
    wk1      97      95      51      63     83      67
    wk2      65      87     111      68     95      89
    wk3      82      95      50      89     36      72
    wk4      65      65     119      70    115      79
    wk5     101      61      84      95     79      47
    wk6      84      78      77      80     79      64
    wk7      79      93      73      56     65     113
    wk8      71      95      84      75     55      94
    wk9      83      56      60      82     69      33
    

    现在我们已经翻转了数据,我们可以创建折线图,并确保 x-scale 是有序的:

    lines = vincent.Line(df)
    lines.scales[0].type = 'ordinal'
    lines.axis_titles(x='WEEKS', y='SCORE')
    lines.legend(title='Player')
    

    你应该得到如下结果:

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-24
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2020-09-14
      • 2014-05-26
      • 2019-02-17
      • 1970-01-01
      相关资源
      最近更新 更多