相关疑难解决方法(0)

在matplotlib中使用pcolor进行热图?

我想制作一个这样的热图(在FlowingData显示): 热图

源数据在这里,但随机数据和标签可以使用,即

import numpy
column_labels = list('ABCD')
row_labels = list('WXYZ')
data = numpy.random.rand(4,4)
Run Code Online (Sandbox Code Playgroud)

在matplotlib中制作热图很容易:

from matplotlib import pyplot as plt
heatmap = plt.pcolor(data)
Run Code Online (Sandbox Code Playgroud)

我甚至发现了一个看起来正确的色彩图参数:heatmap = plt.pcolor(data, cmap=matplotlib.cm.Blues)

但除此之外,我无法弄清楚如何显示列和行的标签,并以正确的方向显示数据(原点位于左上角而不是左下角).

试图操纵heatmap.axes(例如heatmap.axes.set_xticklabels = column_labels)都失败了.我在这里错过了什么?

python data-visualization matplotlib heatmap

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

Matplotlib - 向下移动X轴标签,但不向下移动X轴

我正在使用Matplotlib绘制直方图.使用上一个问题的提示:Matplotlib - 标记每个bin,我或多或少地解决了问题.

最后一个问题 - 先前 - x轴标签("时间(以毫秒为单位)")在x轴刻度线下面呈现(0.00,0.04,0.08,0.12等)

无填充 - 图下方的轴标签

使用Joe Kingston的建议(见上面的问题),我尝试使用:

ax.tick_params(axis='x', pad=30)
Run Code Online (Sandbox Code Playgroud)

但是,这会同时移动x轴刻度线(0.00,0.04,0.08,0.12等)以及x轴标签("时间(以毫秒为单位)"):

30填充 - 轴标签和刻度标记都已移动

有没有办法只将x轴标签移动到三行数字下面?

Nb:您可能需要直接打开下面的PNG - 右键单击​​图像,然后单击查看图像(在FF中),或在新选项卡中打开图像(Chrome).由SO完成的图像调整大小使它们几乎不可读

python graphing matplotlib

95
推荐指数
2
解决办法
11万
查看次数

matplotlib字符串作为x轴上的标签

我正在构建一个用于数据分析的小工具,我已经到了这一点,我必须绘制准备好的数据.此前的代码生成以下两个长度相等的列表.

t11 = ['00', '01', '02', '03', '04', '05', '10', '11', '12', '13', '14', '15', '20', '21', '22', '23', '24', '25', '30', '31', '32', '33', '34', '35', '40', '41', '42', '43', '44', '45', '50', '51', '52', '53', '54', '55']

t12 = [173, 135, 141, 148, 140, 149, 152, 178, 135, 96, 109, 164, 137, 152, 172, 149, 93, 78, 116, 81, 149, 202, 172, 99, 134, 85, 104, 172, 177, 150, 130, 131, 111, 99, 143, 194]
Run Code Online (Sandbox Code Playgroud)

基于此,我想用matplotlib.plt.hist建立一个直方图.但是,存在一些问题:1.对于所有x,连接t11 [x]和t12 [x].其中t11 …

matplotlib

38
推荐指数
2
解决办法
7万
查看次数

在直方图上添加数据标签 Python/Matplotlib

我正在尝试在直方图顶部添加数据标签值,以尝试明显地显示频率。

这是我现在的代码,但不确定如何编码以将值放在上面:

plt.figure(figsize=(15,10))
plt.hist(df['Age'], edgecolor='white', label='d')
plt.xlabel("Age")
plt.ylabel("Number of Patients")
plt.title = ('Age Distrubtion') 
Run Code Online (Sandbox Code Playgroud)

我想知道是否有人知道执行此操作的代码:

在此输入图像描述

python annotations matplotlib histogram bar-chart

7
推荐指数
1
解决办法
2万
查看次数

如何使用Matplotlib或python中的其他库设置轴间隔范围

我想在matplotlib生成的图中仅显示x轴上的相关部分 - 使用pyplot包装器库.

问题:如何通过传递间隔范围的元组来强制绘制某些轴位置的截止值,这些元组定义了要绘制的x轴的间隔.理想情况下,截止值应表示为叠加在x轴上的垂直双波符号.

使用xlimaxis没有用,因为它只允许设置x轴的开始和结束,但中间没有间隔:

在此输入图像描述 具体而言,对于上图,60 to 90不应显示之间的x轴区域,并应添加截止/不连续标记标记.

import matplotlib.pyplot as pyplot
x1, x2 = 0, 50
y1, y2 = 0, 100
pyplot.xlim([x1, x2])
#alternatively
pyplot.axis([x1, x2, y1, y2])
Run Code Online (Sandbox Code Playgroud)

使用matplotlib不是必需的.

更新/摘要:

  • Viktor指出这个来源,使用subplots-splitting和两个图来模拟matplotlib/pyplot中的折线图.

在此输入图像描述

python plot matplotlib range

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

通过 bins matplotlib 标记直方图

我有一个直方图,我想在其中用 bin 标记 x 轴。直方图绘制为对数对数图,但 bin 非常具体。图表:

图表

垃圾箱:

bins = [0, 0.035, 0.07, 0.15, 0.5, 1, 3, 10, 40]  
Run Code Online (Sandbox Code Playgroud)

有什么办法可以做到这一点吗?我相信它还需要摆脱当前的 x 轴标签。

python matplotlib histogram bins

3
推荐指数
1
解决办法
7193
查看次数

直接在图形上可视化 matplotlib 直方图 bin 计数

请我想我有一个简单的问题,但我看不到任何有用的博客来展示如何实现这一目标。我有一个名为“series”的 python pandas 系列,我使用 series.hist() 来可视化直方图。我需要直接在图表上可视化每个 bin 的出现次数,但我找不到解决方案。

我如何才能在每个垃圾箱顶部看到一个标签,显示每个垃圾箱的出现次数?

准确地说,这是我的代码:

import matplotlib.pyplot as plt
your_bins=10
data = [df_5m_9_4pm.loc['2017-6']['sum_daily_cum_ret'].values]
plt.hist(data, binds = your_bins)
arr = plt.hist(data,bins = your_bins)
for i in range(your_bins):
    plt.text(arr[1][i],arr[0][i],str(arr[0][i]))
Run Code Online (Sandbox Code Playgroud)

如果我只是打印变量“数据”,它是这样的:

[array([ 0.        ,  0.03099187, -0.00417244, ..., -0.00459067,
         0.0529476 , -0.0076605 ])]
Run Code Online (Sandbox Code Playgroud)

如果我运行上面的代码,我会收到错误消息:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-97-917078981b1d> in <module>()
      2 your_bins=10
      3 data = [df_5m_9_4pm.loc['2017-6']['sum_daily_cum_ret'].values]
----> 4 plt.hist(data, binds = your_bins)
      5 arr = plt.hist(data,bins = your_bins)
      6 for i in range(your_bins):

~/anaconda3/lib/python3.6/site-packages/matplotlib/pyplot.py in …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib histogram

3
推荐指数
1
解决办法
4041
查看次数