【问题标题】:how to have colorful curves in graph in python [duplicate]如何在python中的图形中有彩色曲线[重复]
【发布时间】:2022-02-14 17:18:10
【问题描述】:

我在 Python 中创建了一个包含三条曲线的图表,我希望每条曲线的颜色都不同。如何在每条曲线上放置不同的颜色?例如绿色、蓝色和红色,而不是所有三个上的红色。

以下是 Python 代码:

import matplotlib.pyplot as plt
import math

a = 9.8  # Acceleration due to gravity,  m/s^2
theta = []
v = 50.0
m = 10.0
c = 1.29
vt = (m * 9.8) / c  # terminal velocity #151.93
time = []
horizontal_range = []
vertical_range = []

for th in range(0,60,15):
    for t in range(0, 50):
        var = (-a * t) / vt
        z = (vt / 9.8) * (v * 0.866 + vt) * (1.0 - (2.718 ** var)) - vt * t
        x = ((1.0 - math.exp(var)) * (v * vt * math.cos(th))) / a
        horizontal_range.append(x)
        vertical_range.append(z)
        time.append(t)

    theta.append(th)

plt.plot(horizontal_range, vertical_range, color='red')
plt.xlabel('x')
plt.ylabel('z')
plt.ylim(0)
plt.xlim(0)
plt.title('Projectile')
plt.show()

【问题讨论】:

  • 不要使用奇怪的2.718 ** var,而是尝试使用math.exp(var)。此外,如果您想进行大量计算,并在速度和易于编写的公式方面取胜,您真的应该查看numpy
  • 感谢您的帮助

标签: python matplotlib


【解决方案1】:

您应该将曲线存储在单独的列表中,并分别绘制它们以获得不同的颜色:

import matplotlib.pyplot as plt
import math

a = 9.8  # Acceleration due to gravity,  m/s^2
theta = []
v = 50.0
m = 10.0
c = 1.29
vt = (m * 9.8) / c  # terminal velocity #151.93
time = {}
horizontal_range = {}
vertical_range = {}

for th in range(0,60,15):
    horizontal_range[th] = []
    vertical_range[th] = []
    time[th] =[]
    for t in range(0, 50):
        var = (-a * t) / vt
        z = (vt / 9.8) * (v * 0.866 + vt) * (1.0 - (2.718 ** var)) - vt * t
        x = ((1.0 - math.exp(var)) * (v * vt * math.cos(th))) / a
        horizontal_range[th].append(x)
        vertical_range[th].append(z)

    theta.append(th)

print(horizontal_range.keys())

for th in range(0,60,15):
    plt.plot(horizontal_range[th], vertical_range[th])
plt.xlabel('x')
plt.ylabel('z')
plt.ylim(0)
plt.xlim(0)
plt.title('Projectile')
plt.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    相关资源
    最近更新 更多