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

时间:2018-10-09 14:29:34

标签: 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

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

1 个答案:

答案 0 :(得分:2)

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

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