相关疑难解决方法(0)

如何给pandas/matplotlib条形图自定义颜色

我刚开始使用pandas/matplotlib替代Excel来生成堆积条形图.我遇到了一个问题

(1)默认色图中只有5种颜色,所以如果我有超过5种颜色,则重复颜色.如何指定更多颜色?理想情况下,具有开始颜色和结束颜色的渐变,以及在两者之间动态生成n种颜色的方法?

(2)颜色在视觉上不是很悦目.如何指定n种颜色的自定义组?或者,渐变也可以.

以下两个例子说明了上述两点:

  4 from matplotlib import pyplot
  5 from pandas import *
  6 import random
  7 
  8 x = [{i:random.randint(1,5)} for i in range(10)]
  9 df = DataFrame(x)
 10 
 11 df.plot(kind='bar', stacked=True)
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

在此输入图像描述

python matplotlib pandas

72
推荐指数
3
解决办法
8万
查看次数

如何使用matplotlib为所有子图设置默认颜色周期?

如何为matplotlib制作的图形设置一组默认颜色?我可以像这样设置一个特定的颜色图

import numpy as np
import matplotlib.pyplot as plt

fig=plt.figure(i)
ax=plt.gca()
colormap = plt.get_cmap('jet')
ax.set_color_cycle([colormap(k) for k in np.linspace(0, 1, 10)])
Run Code Online (Sandbox Code Playgroud)

但是有没有办法为所有情节设置相同的颜色集,包括子图?

python colors matplotlib

59
推荐指数
3
解决办法
3万
查看次数

是否有比"彩虹"色彩图更好的色标?

我正在绘制x,y空间中的一系列曲线,其中每条曲线由标量值z标识.我希望将z值映射到每条线的颜色,但是大多数色彩图/颜色表都是在考虑图像的情况下构建的(例如,在白色背景上,灰度色彩图隐藏了z的一个极端).

彩虹/光谱/喷射色图 - 这是许多绘图程序中的默认值 - 更好,但是白色背景上的黄色/青色线的可见性差,蓝色/青色/绿色之间的色彩对比度差.Borland和Taylor进一步讨论了彩虹色图的这个问题和其他问题:

有人能推荐更好的东西吗?我正在寻找的一些方面:

  1. 所有颜色的高能见度反对白色背景
  2. 直观的感知排序(红 - 黄 - 蓝比红 - 蓝 - 黄更有意义)
  3. 色彩之间的色度对比度很好

编辑/更新:每个endolith的请求,这是一个简化的示例图: 样本图用灰色和喷射彩色图 "灰色"色图和它的亲戚(从黑色开始到白色结束)是为图像设计的,但是当用于在白色背景上绘制线条或点时,有些将很难看到或看不见."jet"色图和它的光谱亲属通常也有黄色,绿色或其他颜色,很难在白色背景上看到.

visualization data-visualization graph

30
推荐指数
4
解决办法
2万
查看次数

如何裁剪方形宽高比的Axes3D图?

这是一个准系统的例子:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
f = fig.add_subplot(2, 1, 1, projection='3d')
t = fig.add_subplot(2, 1, 2, projection='3d')

# axes
for d in {f, t}:
    d.plot([-1, 1], [0, 0], [0, 0], color='k', alpha=0.8, lw=2)
    d.plot([0, 0], [-1, 1], [0, 0], color='k', alpha=0.8, lw=2)
    d.plot([0, 0], [0, 0], [-1, 1], color='k', alpha=0.8, lw=2)

f.dist = t.dist = 5.2   # 10 is default

plt.tight_layout()
f.set_aspect('equal')
t.set_aspect('equal')

r = 6
f.set_xlim3d([-r, r])
f.set_ylim3d([-r, r])
f.set_zlim3d([-r, r])

t.set_xlim3d([-r, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib aspect-ratio mplot3d

21
推荐指数
1
解决办法
1132
查看次数