>  기사  >  백엔드 개발  >  Matplotlib를 사용하여 다양한 색상으로 선을 그리는 방법은 무엇입니까?

Matplotlib를 사용하여 다양한 색상으로 선을 그리는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-31 06:51:30417검색

How to Plot a Line with Varying Colors Using Matplotlib?

다양한 색상으로 선 그리기

문제

두 개의 데이터 포인트 목록(latt 및 lont)이 주어지면 목표는 데이터를 다음과 같이 시각화하는 것입니다. 다양한 색상의 라인. 선은 기간으로 분할되어야 하며 각 기간은 두 목록의 10개 데이터 포인트로 구성됩니다. 기간별로 서로 다른 색상을 지정해야 합니다.

해결 방법

방법 1: 선분 수 제한

소수의 선분의 경우, 다음 접근 방식을 사용할 수 있습니다.

<code class="python">import numpy as np
import matplotlib.pyplot as plt

def uniqueish_color():
    """Generate a unique-looking color."""
    return plt.cm.gist_ncar(np.random.random())

# Generate random data
xy = (np.random.random((10, 2)) - 0.5).cumsum(axis=0)

# Create a figure and axis
fig, ax = plt.subplots()

# Iterate over segments
for start, stop in zip(xy[:-1], xy[1:]):
    x, y = zip(start, stop)
    ax.plot(x, y, color=uniqueish_color())

# Display the plot
plt.show()</code>

방법 2: 많은 수의 선 세그먼트

많은 수의 선 세그먼트의 경우 LineCollection을 사용하여 다음을 수행할 수 있습니다. 성능 향상:

<code class="python">import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection

# Generate random data
xy = (np.random.random((1000, 2)) - 0.5).cumsum(axis=0)

# Reshape data
xy = xy.reshape(-1, 1, 2)
segments = np.hstack([xy[:-1], xy[1:]])

# Create a figure and axis
fig, ax = plt.subplots()

# Create a LineCollection
coll = LineCollection(segments, cmap=plt.cm.gist_ncar)

# Set colors
coll.set_array(np.random.random(xy.shape[0]))

# Add collection to axis
ax.add_collection(coll)

# Adjust view
ax.autoscale_view()

# Display the plot
plt.show()</code>

위 내용은 Matplotlib를 사용하여 다양한 색상으로 선을 그리는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.