需要使用Plotly Express在交互式二维折线图上绘制多条线(大数据集-将产生约4,500条线)。>
问题是我的变量(x和y轴)位于2个单独的列中,并且每行的数据点数不同。每行的数据点数将基于“ API / UWI”列---“ API / UWI”值恒定的行将代表1行的所有数据点。
即,当“ API / UWI”列中的值更改时,新行开始。
为清楚起见,下面是我的数据集的一小部分示例。
[我的第一次尝试是根据“ API / UWI”列中的唯一值将数据框分成多个数据框,然后将所有这些数据框绘制成图形。有效!但是,它产生了4,500个图形,而不是一个包含4,500行的图形。
是否有更好的方法来完成此操作并生成包含4,500条线的单个图形?
我将下面的代码发布给我,以供上面的尝试之用,以及所产生图形的示例(单行)。
请详细说明您的解决方案。这是我第一次尝试进行任何形式的编码。我是一个初学者。请谢谢!
import plotly.express as px
import pandas as pd
import numpy as np
excel_file = r"C:\Users\kevin\Desktop\Bone_Spring_Data_2.xlsx"
df = pd.read_excel(excel_file)
split_values_API = df['API/UWI'].unique()
for API in split_values_API:
df1 = df[df['API/UWI'] == API]
df1 = df1.sort_values(by="Monthly Production Date")
GOR_data = px.line(df1, x='Monthly Production Date' , y='MONTHLY GOR')
GOR_data.show()
*编辑以回应评论:
df.head(20).to_dict()
的输出如下:
df.head(20).to_dict() {'API/UWI': {0: 30015209400000, 1: 30015209400000, 2: 30015209400000, 3: 30015209400000, 4: 30015209400000, 5: 30015209400000, 6: 30015209400000, 7: 30015209400000, 8: 30015209400000, 9: 30015209400000, 10: 30015209400000, 11: 30015209400000, 12: 30015209400000, 13: 30015209400000, 14: 30015209400000, 15: 30015209400000, 16: 30015209400000, 17: 30015209400000, 18: 30015209400000, 19: 30015209400000}, 'Monthly Production Date': {0: Timestamp('2001-01-01 00:00:00'), 1: Timestamp('2001-02-01 00:00:00'), 2: Timestamp('2001-03-01 00:00:00'), 3: Timestamp('2001-04-01 00:00:00'), 4: Timestamp('2001-05-01 00:00:00'), 5: Timestamp('2001-06-01 00:00:00'), 6: Timestamp('2001-07-01 00:00:00'), 7: Timestamp('2001-08-01 00:00:00'), 8: Timestamp('2001-09-01 00:00:00'), 9: Timestamp('2001-10-01 00:00:00'), 10: Timestamp('2001-11-01 00:00:00'), 11: Timestamp('2001-12-01 00:00:00'), 12: Timestamp('2002-01-01 00:00:00'), 13: Timestamp('2002-02-01 00:00:00'), 14: Timestamp('2002-03-01 00:00:00'), 15: Timestamp('2002-04-01 00:00:00'), 16: Timestamp('2002-05-01 00:00:00'), 17: Timestamp('2002-06-01 00:00:00'), 18: Timestamp('2002-07-01 00:00:00'), 19: Timestamp('2002-08-01 00:00:00')}, 'MONTHLY GOR': {0: 1.1925754060324827, 1: 2.467706013363029, 2: 1.0963541666666667, 3: 1.4296296296296296, 4: 1.726027397260274, 5: 1.7688172043010753, 6: 1.1894736842105262, 7: 1.037837837837838, 8: 1.3162393162393162, 9: 0.6, 10: 0.6612903225806451, 11: 0.8181818181818182, 12: 0.7103448275862069, 13: 0.6423357664233577, 14: 0.6388888888888888, 15: 1.278688524590164, 16: 0.8455284552845529, 17: 1.8529411764705883, 18: 0.736, 19: 1.6818181818181819}}
注意,在以上输出中,
'API/UWI'
值不变。在上面的示例(附图)中,为简化起见,我简化了示例数据集。值以随机间隔更改为新的'API/UWI'
(基于每个'Monthly Production Date'
唯一值的'API/UWI'
列中的月数。
需要使用Plotly Express在交互式二维折线图上绘制多条线(大型数据集-将产生约4,500条线)。问题是我的变量(x和y轴)在2个单独的...
首先,如果您想使用plotly.express
,则可以使用