拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 JupyterNotebooks使用Matplotlib打印波浪形扭曲的图形

JupyterNotebooks使用Matplotlib打印波浪形扭曲的图形

白鹭 - 2022-03-02 1991 0 0

我尝试了 Matplotlib 的代码教程并输入了以下内容:

from matplotlib import pyplot as plt

plt.style.use('ggplot')

ages_x = [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
          36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55]
py_dev_y = [20046, 17100, 20000, 24744, 30500, 37732, 41247, 45372, 48876, 53850, 57287, 63016, 65998, 70003, 70000, 71496, 75370, 83640, 84666,
            84392, 78254, 85000, 87038, 91991, 100000, 94796, 97962, 93302, 99240, 102736, 112285, 100771, 104708, 108423, 101407, 112542, 122870, 120000]
js_dev_y = [16446, 16791, 18942, 21780, 25704, 29000, 34372, 37810, 43515, 46823, 49293, 53437, 56373, 62375, 66674, 68745, 68746, 74583, 79000,
            78508, 79996, 80403, 83820, 88833, 91660, 87892, 96243, 90000, 99313, 91660, 102264, 100000, 100000, 91660, 99240, 108000, 105000, 104000]
dev_y = [17784, 16500, 18012, 20628, 25206, 30252, 34368, 38496, 42000, 46752, 49320, 53200, 56000, 62316, 64928, 67317, 68748, 73752, 77232,
         78000, 78508, 79536, 82488, 88935, 90000, 90056, 95000, 90000, 91633, 91660, 98150, 98964, 100000, 98988, 100000, 108923, 105000, 103117]

plt.plot(ages_x, py_dev_y, label='Python')
plt.plot(ages_x, js_dev_y, label='JavaScript')
plt.plot(ages_x, dev_y, color='#444444', linestyle='--', label='All Devs')
plt.xlabel('Ages')
plt.ylabel('Median Salary (USD)')
plt.title('Median Salary (USD) by Age')
plt.legend()
plt.tight_layout()
# plt.savefig('plot.png')
# plt.show()

该代码在 VS Code 上打印出看起来正常的图形,但在 Jupyter Notebooks 上打印出波浪形扭曲的图形(下图)

问题在于,尽管在 VS Code 上看起来不错,但 Jupyter Notebook 中的图表看起来扭曲且呈波浪状。

来自 VS 代码的图表: Jupyter Notebooks 使用 Matplotlib 打印波浪形扭曲的图形

来自 Jupyter Notebook 的图表: Jupyter Notebooks 使用 Matplotlib 打印波浪形扭曲的图形

uj5u.com热心网友回复:

看起来您使用了Jupyter Notebooks 使用 Matplotlib 打印波浪形扭曲的图形

避免全域设定样式元素的一种方法是使用with陈述句(如上)。否则,您会保留各种样式(这似乎是您的情况,因为您也有网格)。

尝试重置自变量:

import matplotlib as mpl
mpl.rcParams.update(mpl.rcParamsDefault)

或者重新启动您的解释器/笔记本并仅运行您的代码。

uj5u.com热心网友回复:

我猜你以前用过plt.xkcd(),它基本上改变了rc自变量。
您可以使用 还原plt.rcdefaults()
有关更多详细信息,请参阅此答案

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *

热门标签