首页 > 解决方案 > 在 Python 中制作此图表可视化的最佳方法

问题描述

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

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

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

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

标签: pythondata-visualization

解决方案


如果我正确理解您的问题,您需要一个折线图,其 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)

当您运行它时,它将在浏览器中自动呈现:

在此处输入图像描述


推荐阅读