Как мне соединить два набора значений разброса XY в MatPlotLib? - PullRequest
0 голосов
/ 09 октября 2018

Я использую MatLibPlot для извлечения данных из файла Excel и для создания точечной диаграммы.

Вот минимальная примерная таблица

enter image description here

На моем графике рассеяния у меня есть два набора значений XY.В обоих наборах мои значения X - это население страны.Я использую возобновляемую энергию в качестве моего значения 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

Iхотел бы иметь возможность провести линию между двумя наборами точек, предпочтительно линию, которую я могу изменить по толщине и цвету.

1 Ответ

0 голосов
/ 10 октября 2018

Как прокомментировано, вы можете просто зациклить кадр данных и построить линию для каждой строки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...