首页 > 解决方案 > Matplotlib:绘制折线图设置线型、比例和自定义颜色

问题描述

我是 Python 和 Matplotlib 的新手,我正在尝试使用以下代码绘制线图:

cov = np.array([164430.5, 84322.6, 83595.6])
p2 = np.array([92118.2, 30813.8, 36428.7])
p5 = np.array([16033.3, 15940.9, 16555.1])
s = np.array([315262.9, 176823.4, 182933.4])
ax = np.array([1, 8, 32])

plt.plot(ax, cov, 'r--', ax, p2, 'bs', ax, p5,'g^', ax, s, 'y*')

plt.show()

到目前为止,我看到情节运行良好,但我不知道如何执行以下操作:

  1. 用平滑线连接符号
  2. 更改 X 轴以仅查看 1、8 和 32,但它们之间的距离也相同。
  3. 将比例更改为对数。
  4. 应用于每一行,一些十六进制的自定义颜色。

你能指导我吗?非常感谢!

标签: pythonmatplotlib

解决方案


如果他们需要,我正在回答我自己的问题以帮助其他人!:

用平滑线连接符号

更改'r--''r-'.

更改 X 轴以仅查看 1、8 和 32,但它们之间的距离也相同。

最后,我没有这样做,但大约是在使用这个:plt.xticks(ax, (1, 8, 32))。我唯一不能做的就是让它们保持等距。

将比例更改为对数。

plt.yscale('log')

应用于每一行,一些十六进制的自定义颜色。

color = '#FF7373'

我也改变了写一切的方式,因为它对我来说更清晰。所以这里是所有的:

import numpy as np
import matplotlib.pyplot as plt

cov = np.array([164430.5, 84322.6, 83595.6])
p2 = np.array([92118.2, 30813.8, 36428.7])
p5 = np.array([16033.3, 15940.9, 16555.1])
s = np.array([315262.9, 176823.4, 182933.4])
ax = np.array([1, 8, 32])

plt.xticks(ax, (1, 8, 32))

line1, = plt.plot(ax, cov, '*-', label='cov', color = '#4F81BD') # blue
line2, = plt.plot(ax, p2, 'o-', label='p2',color = '#C0504D') # red
line3, = plt.plot(ax, p5, '^-', label='p5', color = '#9BBB59') # green
line4, = plt.plot(ax, s, 's-',  label='s', color = '#FF7373') # pink

plt.legend()
plt.grid(True)
plt.show()

推荐阅读