[python] 팬더 플롯에 x 및 y 레이블 추가

팬더를 사용하여 매우 간단한 것을 그리는 다음 코드가 있다고 가정합니다.

import pandas as pd
values = [[1, 2], [2, 5]]
df2 = pd.DataFrame(values, columns=['Type A', 'Type B'],
                   index=['Index 1', 'Index 2'])
df2.plot(lw=2, colormap='jet', marker='.', markersize=10,
         title='Video streaming dropout by category')

산출

특정 컬러 맵을 사용하는 능력을 유지하면서 x 및 y 레이블을 쉽게 설정하는 방법은 무엇입니까? 나는 것으로 나타났습니다 plot()팬더 DataFrames에 대한 래퍼가에 대한 매개 변수의 특정을지지 않습니다.



답변

df.plot()함수는 matplotlib.axes.AxesSubplot객체를 반환 합니다. 해당 객체에 레이블을 설정할 수 있습니다.

ax = df2.plot(lw=2, colormap='jet', marker='.', markersize=10, title='Video streaming dropout by category')
ax.set_xlabel("x label")
ax.set_ylabel("y label")

여기에 이미지 설명을 입력하십시오

또는 더 간결하게 : ax.set(xlabel="x label", ylabel="y label").

또는 인덱스 x 축 레이블이 인덱스 이름 (있는 경우)으로 자동 설정됩니다. 그래서 df2.index.name = 'x label'작동합니다.


답변

다음과 같이 사용할 수 있습니다.

import matplotlib.pyplot as plt
import pandas as pd

plt.figure()
values = [[1, 2], [2, 5]]
df2 = pd.DataFrame(values, columns=['Type A', 'Type B'],
                   index=['Index 1', 'Index 2'])
df2.plot(lw=2, colormap='jet', marker='.', markersize=10,
         title='Video streaming dropout by category')
plt.xlabel('xlabel')
plt.ylabel('ylabel')
plt.show()

분명히 문자열 ‘xlabel’과 ‘ylabel’을 원하는 것으로 바꾸어야합니다.


답변

DataFrame의 열과 색인에 레이블을 지정하면 팬더가 자동으로 적절한 레이블을 제공합니다.

import pandas as pd
values = [[1, 2], [2, 5]]
df = pd.DataFrame(values, columns=['Type A', 'Type B'],
                  index=['Index 1', 'Index 2'])
df.columns.name = 'Type'
df.index.name = 'Index'
df.plot(lw=2, colormap='jet', marker='.', markersize=10,
        title='Video streaming dropout by category')

여기에 이미지 설명을 입력하십시오

이 경우에도 여전히 y- 라벨을 수동으로 제공해야합니다 (예 : plt.ylabel다른 답변에 표시된대로).


답변

axis.set기능 과 함께 두 레이블을 모두 설정할 수 있습니다. 예를 찾으십시오.

import pandas as pd
import matplotlib.pyplot as plt
values = [[1,2], [2,5]]
df2 = pd.DataFrame(values, columns=['Type A', 'Type B'], index=['Index 1','Index 2'])
ax = df2.plot(lw=2,colormap='jet',marker='.',markersize=10,title='Video streaming dropout by category')
# set labels for both axes
ax.set(xlabel='x axis', ylabel='y axis')
plt.show()

여기에 이미지 설명을 입력하십시오


답변

사용하는 경우 pandas.DataFrame.hist:

plt = df.Column_A.hist(bins=10)

플롯이 아닌 플롯의 ARRAY를 얻습니다. 따라서 x 레이블을 설정하려면 다음과 같이해야합니다

plt[0][0].set_xlabel("column A")


답변

이건 어떤가요 …

import pandas as pd
import matplotlib.pyplot as plt

values = [[1,2], [2,5]]

df2 = pd.DataFrame(values, columns=['Type A', 'Type B'], index=['Index 1','Index 2'])

(df2.plot(lw=2,
          colormap='jet',
          marker='.',
          markersize=10,
          title='Video streaming dropout by category')
    .set(xlabel='x axis',
         ylabel='y axis'))

plt.show()


답변

pandasmatplotlib기본 데이터 프레임 플롯에 사용 합니다. 따라서 pandas기본 플롯을 사용하는 경우 플롯 사용자 정의에 matplotlib을 사용할 수 있습니다. 그러나 나는 seaborn기본 수준으로 가지 않고 플롯을 더 많이 사용자 정의 할 수 있는 대체 방법을 제안합니다.matplotlib .

근무 코드 :

import pandas as pd
import seaborn as sns
values = [[1, 2], [2, 5]]
df2 = pd.DataFrame(values, columns=['Type A', 'Type B'],
                   index=['Index 1', 'Index 2'])
ax= sns.lineplot(data=df2, markers= True)
ax.set(xlabel='xlabel', ylabel='ylabel', title='Video streaming dropout by category') 

여기에 이미지 설명을 입력하십시오