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

有没有一种方法可以使用Plotly express来显示多个次图

越文康
2023-03-14

我很想知道是否有一个等价物:

import pandas as pd
import numpy as np

data = pd.DataFrame({'Day':range(10),
                     'Temperature': np.random.rand(10), 
                     'Wind': np.random.rand(10),
                     'Humidity': np.random.rand(10),
                     'Pressure': np.random.rand(10)})

data.set_index('Day').plot(subplots=True, layout=(2,2), figsize=(10,5))
plt.tight_layout()

它生成与matplotlib图表相反的图形。

共有1个答案

翁硕
2023-03-14

对于plotly express解决方案:
您可以使用pd.melt()获取同一列中的所有变量:

import pandas as pd
import plotly.express as px

df = pd.DataFrame({
    'Day':range(10),
    'Temperature': np.random.rand(10), 
    'Wind': np.random.rand(10),
    'Humidity': np.random.rand(10),
    'Pressure': np.random.rand(10),})

df_melt = df.melt(
    id_vars='Day', 
    value_vars=['Temperature', 'Wind', 'Humidity', 'Pressure'])

您的dataframe现在看起来如下所示,变量名位于名为'variable'的列中,值位于名为'value'的列中:

    Day variable    value
0   0   Temperature 0.609
1   1   Temperature 0.410
2   2   Temperature 0.194
3   3   Temperature 0.663
4   4   Temperature 0.351

现在可以使用px.scatter()和参数facet_col来获得多个图:

fig = px.scatter(
    df_melt, 
    x='Day', 
    y='value', 
    facet_col='variable', 
    facet_col_wrap=2, 
    color='variable', 
    width=800,
)
fig.update_yaxes(showticklabels=True, matches=None)
 类似资料:
  • 问题内容: 假设我有以下代码: 这段代码的问题在于,协程内部的循环永远不会完成第一次迭代,而大小会不断增加。 为什么会这样发生,我该怎么解决? 我无法摆脱单独的线程,因为在我的真实代码中,我使用了单独的线程与串行设备进行通信,而且我还没有找到使用的方法。 问题答案: 不是线程安全的,因此您不能直接在多个线程中直接使用它。相反,您可以使用,它是提供线程感知队列的第三方库: 还有(全披露:我写了它),

  • 我知道我可以在一个jar中编译多个xsd文件。我尝试过使用不同的名称空间,这只让我完成了一半的目标。通过这种方式,我可以解析正确的模式,但我希望这对将接收我解析的xmlBeans对象的用户是透明的。 他们不必知道系统上当前存在哪个版本的xml文件。我需要每个xsd版本都有一个超级类来实现这一点。 这可以用xmlBeans完成吗?

  • 我需要向用户显示以下座位并能够预订和取消预订。 我也尝试了unordered_map,但无论我做什么,我都无法使map以我想要的方式显示座位(1A,1B,1C,1D,1E)。 1A 1B 1C 1D 1E 2A 2B 2C 2D 2E... 尝试将座位名称更改为A1 B1 C1 D1...显然,我是C++新手。我知道地图是有序的,并且我知道使用unordered_map无法保证地图的显示方式。 我

  • 在Borland VCL库中,几乎所有控件都有提示属性。在运行时,当您将鼠标放在相应的控件上时,当您移动鼠标时,一个带有提示文本的小框会弹出并再次消失,例如Windows资源管理器和其他程序中的帮助消息,当鼠标光标放在按钮上时。 JavaFX中是否有类似的概念(实际上,我使用的是ScalaFX)? 当然,我可以创建一个没有装饰的新舞台,添加一些鼠标监听器等,但是它不是已经在某个地方可用了吗?

  • 问题内容: 如果我的存储过程中包含打印语句: 有没有办法在通过JDBC连接到SQL Server 2008的Java程序中获取输出? 此外,是否存在从JDBC应用程序调用时留给调试消息的消息会关闭连接的危险? 问题答案: 是的,有:

  • 问题内容: 有没有办法用Laravel的ELOQUENT ORM来“限制”结果? 和雄辩? 问题答案: 创建一个扩展口才的游戏模型,并使用此模型: 这里将获得30条记录,这里将抵消30条记录。 在最新的Laravel版本中,您还可以使用: