【问题标题】:Best way to make this chart visualization in Python在 Python 中制作此图表可视化的最佳方法
【发布时间】:2020-05-07 12:46:22
【问题描述】:

如果这是一个不恰当的问题,我深表歉意 - 我是这个网站的新手。

我有一个折线图(可以在 here 找到),我希望能够以编程方式在 Python 中制作它。

如您所见,它是一个没有递增 x 轴的折线图。 x 轴上有方框,每个方框都有一个描述符和一个数字。绘制的点是与每列相关的上述数字。

我对可视化库 Bokeh 很熟悉,但似乎无法得出一个好的结果。 Matplotlib 也是一种选择,但该库通常会生成相当粗糙的图形。谁能告诉我他们以前是否见过这种图表(例如,比“折线图”更具体的名称)?我唯一真正的限制是我需要它相当容易在网络上呈现,因此我最初查看 Bokeh。欢迎任何建议!

【问题讨论】:

    标签: python data-visualization


    【解决方案1】:

    如果我正确理解您的问题,您需要一个折线图,其 x 轴仅标有次要刻度。

    我同意 matplotlib 看起来很粗糙:我认为 Plotly 是一个非常友好的库,用于制作交互式图形,并在网页上很好地呈现。

    要将图表嵌入网页,您可以使用 chart_studio 库,然后使用用户名创建 Chart Studio 帐户并获取您的 API 密钥。

    import plotly as py
    import plotly.graph_objects as go 
    import chart_studio
    import chart_studio.plotly as ch_py
    import chart_studio.tools as tls
    
    x_data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    y_data = [3, 5, 3.3, 6.2, 3.5, 4.2, 3.7, 6.3, 4.4]
    
    fig = go.Figure(data = go.Scatter(x = x_data, y = y_data))
    
    fig.update_layout(
        xaxis = dict(
            tickmode = 'array',
            tickvals = [0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5],
            ticktext = ['str1', 'str2', 'str3', 'str4', 'str5', 'str6', 'str7', 'str8', 'str9'] 
        ),
        yaxis = dict(
            tickmode = 'array',
            tickvals = [1,2,3,4,5,6,7]
        )
    )
    
    fig.show()
    
    # create a chartstudio account and generate an API key
    # username = 'xxxxxxxx'
    # api_key = 'xxxxxxxxxx'
    
    # chart_studio.tools.set_credentials_file(username=username, api_key=api_key)
    # ch_py.plot(fig, filename = 'my_filename', auto_open = True)
    

    当你运行它时它会自动在浏览器中呈现:

    【讨论】:

    • 这太棒了!非常感谢你让我开始。有没有一种简单的方法可以更改 x 轴以获取字符串标签?再次感谢!
    • 没问题!要将轴更改为字符串标签,请使用 ticktext 属性 - 我将更新答案。如果您认为答案有帮助,请考虑接受答案:stackoverflow.com/help/someone-answers
    猜你喜欢
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多