当前位置: 首页 > 知识库问答 >
问题:

Plotly:如何使用散点图显示多索引数据帧?

云开诚
2023-03-14

我正在使用多索引数据框绘制折线图。使用Matplotlib绘制图形时,我可以看到正确的结果,但使用Plotly散点图绘制时,数据框显示错误的输出-为什么?

import pandas as pd
data = pd.DataFrame([
        ('Q1','Blue',100),
        ('Q1','Green',300),
        ('Q2','Blue',200),
        ('Q2','Green',350),
        ('Q3','Blue',300),
        ('Q3','Green',400),
        ('Q4','Blue',400),
        ('Q4','Green',450),
    ], 
    columns=['quarter', 'company', 'value']
)
data = data.set_index(['quarter', 'company']).value

data.unstack().plot(kind='bar', stacked=True)

上面的代码绘制了正确的图表。下面的代码也会生成正确的结果。

fig = go.Figure()
fig.add_trace(go.Scatter(x=sample.index, y=sample['Blue'], 
                         #mode='lines+markers', name='',
                         #line=dict(color=colors_list[1],width=2,) ,
                          
                        )
)

但是我不知道如何同时在散点图中绘制蓝色和绿色?

例子:

fig = go.Figure()
fig.add_trace(go.Scatter(x=sample.index, y=sample, 
                         #mode='lines+markers', name='',
                         #line=dict(color=colors_list[1],width=2,) ,
                          
                        )
)

谁能帮我把蓝色和绿色画在一起?

共有2个答案

孔扬
2023-03-14

正如维斯特兰在他的回答中所指出的那样,你可以使用Plotly Express来简单地完成它。

但是,如果不想使用Plotly Express,则必须向地物添加绘图(迹线),并按如下所示配置地物键。

import plotly.graph_objects as go

fig = go.Figure()
fig.add_trace(go.Scatter(x=sample.index, y=sample['Green'], mode='markers', name = 'Green', marker_color = 'Green'))
fig.add_trace(go.Scatter(x=sample.index, y=sample['Blue'], mode='markers', name = 'Blue', marker_color = 'Blue'))
fig.update_layout(title="The Title", xaxis_title="Quarter", yaxis_title="Value", legend_title="Company")

给予

桓高澹
2023-03-14

您的问题有点不清楚,但我假设您在这里的主要目标是显示一个季度数组中的值,其中值分为两组[“蓝色”、“红色”]。(我不太明白为什么您要求提供一个绘图仪散点图,但显示一个matplotlib条形图…)。无论如何,如果我是对的,那么您的用例非常适合plotly.express,特别是px.scatter,下面的代码片段将使用它生成下图。

import pandas as pd
import plotly.graph_objects as go
import plotly.express as px

data = pd.DataFrame([
        ('Q1','Blue',100),
        ('Q1','Green',300),
        ('Q2','Blue',200),
        ('Q2','Green',350),
        ('Q3','Blue',300),
        ('Q3','Green',400),
        ('Q4','Blue',400),
        ('Q4','Green',450),
    ], 
    columns=['quarter', 'company', 'value']
)

fig = px.scatter(data, x = 'quarter', y = 'value',
                 color = 'company',
                 color_discrete_sequence=['Blue', 'Green'])
fig.show()
 类似资料:
  • 后果 我有这个数据框 代码是 但它不渲染。为什么啊?

  • 我的目标是用JFreeChart XY散点图显示一些数据,以便在按下jButton时显示该散点图,并且还可以单击该散点图上的数据点并查看有关它们的一些附加信息。在按下jButton之后,从外部数据文件导入数据点,并创建散点图。绘图按预期工作,但情节对鼠标单击没有反应。 我试图在包含散点图的图表面板中添加一个ChartMouseListener,但它似乎没有注册鼠标单击,或者对单击没有反应。 这是代

  • 目标:散点图中的选定点(使用套索工具)应在数据表中突出显示。如果可能的话,使用dash JS回调,但是任何其他的解决方案都会非常感激。 问题:行索引不是唯一的,但它们在每个类别(跟踪)中重复。因此,如果突出显示散点图左上角的3个最大点。只有2行而不是3行高亮显示。这两个中只有一个是正确的。请通过将悬停在绘图点上的标签与数据表中的信息进行比较来检查这一点。 问题/解决方案:如何使数据表的行索引唯一?

  • 问题内容: 我有以下使用numpy和bokeh的小示例脚本: 问题在于,悬停工具仅适用于余弦曲线,而不适用于正弦曲线。 我知道一种选择是同时绘制两个系列并更改余弦数据点的颜色: 但是随后我松开了第二种颜色的图例条目。 如何设法将鼠标悬停在两个数据集上并查看相应的工具提示? 谢谢! 最高 问题答案: 最初的答案是古老且过时的,这是如何使用任何现代版本的Bokeh来实现此目的:

  • 这是我的条形图代码 柱状图基本上是一样的。 谢谢你的帮助!

  • 问题内容: 我有大熊猫,与命名和列,并 我正在尝试使用语法将图散布在x轴和y轴上。 当我尝试时: 我可能会收到一个错误,可能是因为不是列 我收到一个错误: 因此在x轴上没有默认索引。 我遇到错误 如果直接使用我可以画出来 有没有一种使用 语法来绘制索引的方法? 问题答案: 这有点丑陋(我认为您在问题中使用的matplotlib解决方案更好,FWIW),但是您始终可以使用索引作为列usinng创建一