pandas - 如何在 MatPlotLib 中连接两组 XY 散点值?

标签 pandas matplotlib

我正在使用 MatLibPlot 从 Excel 文件中获取数据并创建散点图。

这是一个最小的示例表

enter image description here

在我的散点图中,我有两组 XY 值。在这两组中,我的 X 值都是国家/地区人口。我将可再生能源消耗作为一组中的 Y 值,并将不可再生能源消耗作为另一组中的 Y 值。

对于每个国家/地区,我希望有一条从可再生点到不可再生点的线。

我的示例代码如下

import pandas as pd
import matplotlib.pyplot as plt

excel_file = 'example_graphs.xlsx'

datasheet = pd.read_excel(excel_file, sheet_name=0, index_col=0)

ax = datasheet.plot.scatter("Xcol","Y1col",c="b",label="set_one")
datasheet.scatter("Xcol","Y2col",c="r",label="set_two", ax=ax)
ax.show()

它产生以下情节

enter image description here

我希望能够在两组点之间画一条线,最好是一条可以更改其粗细和颜色的线。

最佳答案

正如评论所述,您可以简单地循环数据框并为每一行绘制一条线。

import pandas as pd
import matplotlib.pyplot as plt

datasheet = pd.DataFrame({"Xcol" : [1,2,3],
                          "Y1col" : [25,50,75],
                          "Y2col" : [75,50,25]})

ax = datasheet.plot.scatter("Xcol","Y1col",c="b",label="set_one")
datasheet.plot.scatter("Xcol","Y2col",c="r",label="set_two", ax=ax)
for n,row in datasheet.iterrows():
    ax.plot([row["Xcol"]]*2,row[["Y1col", "Y2col"]], color="limegreen", lw=3, zorder=0)
plt.show()

enter image description here

关于pandas - 如何在 MatPlotLib 中连接两组 XY 散点值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52723466/

相关文章:

python - 使用 python 将多个工作表中的数据添加到 Excel 图表中

python - 如何在 Pandas 中创建分层列?

python - 根据条件修改 DataFrame 的第一行

python - 如何阻止 Matplotlib 重复颜色?

Python matplotlib 和绘制日期时间信息

python - 如何在 Spark SQL 中压缩两个数组列

python - 从滚动总和中排除最近一天

Python Matplotlib - 保存的图像在使用 for 循环时被覆盖

python - Cartopy 范围问题 (free() : invalid size)

python - 从 PDF 读取并存储在数据框中时如何保留表结构?