programing

Python에서 서로 다른 라인 스타일로 주 그리드라인과 부 그리드라인을 만드는 방법

lastmoon 2023. 7. 16. 17:44
반응형

Python에서 서로 다른 라인 스타일로 주 그리드라인과 부 그리드라인을 만드는 방법

현재 사용 중입니다.matplotlib.pyplot그래프를 만들고 주 격자선을 실선과 검은색으로 표시하고 부 격자선을 회색 또는 점선으로 표시합니다.

그리드 속성에서which=both/major/mine그런 다음 색상과 라인 스타일은 단순히 라인 스타일로 정의됩니다.마이너 라인 스타일만 지정할 수 있는 방법이 있습니까?

제가 지금까지 가지고 있는 적절한 코드는

plt.plot(current, counts, 'rd', markersize=8)
plt.yscale('log')
plt.grid(b=True, which='both', color='0.65', linestyle='-')

사실, 그것은 설정하는 것만큼 간단합니다.major그리고.minor별도:

In [9]: plot([23, 456, 676, 89, 906, 34, 2345])
Out[9]: [<matplotlib.lines.Line2D at 0x6112f90>]

In [10]: yscale('log')

In [11]: grid(b=True, which='major', color='b', linestyle='-')

In [12]: grid(b=True, which='minor', color='r', linestyle='--')

보조 격자가 있는 갓챠는 보조 눈금도 켜야 한다는 것입니다.위의 코드에서 이것은 다음과 같습니다.yscale('log')하지만 그것은 또한 할 수 있습니다.plt.minorticks_on().

enter image description here

간단한 DIY 방법은 그리드를 직접 만드는 것입니다.

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)

ax.plot([1,2,3], [2,3,4], 'ro')

for xmaj in ax.xaxis.get_majorticklocs():
  ax.axvline(x=xmaj, ls='-')
for xmin in ax.xaxis.get_minorticklocs():
  ax.axvline(x=xmin, ls='--')

for ymaj in ax.yaxis.get_majorticklocs():
  ax.axhline(y=ymaj, ls='-')
for ymin in ax.yaxis.get_minorticklocs():
  ax.axhline(y=ymin, ls='--')
plt.show()

언급URL : https://stackoverflow.com/questions/9127434/how-to-create-major-and-minor-gridlines-with-different-linestyles-in-python

반응형