- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是从 C 和 Matlab 开始接触 Python 的新手。我正在创建一个脚本,该脚本可生成用于洪水频率分析的对数概率(对数 y 轴-概率 x 轴)图。我正在使用以下 Stackoverflow 解决方案进行 xaxis 概率缩放:
Creating Probability/Frequency Axis Grid (Irregularly Spaced) with Matplotlib
这个解决方案非常适合 xaxis。但是,当我将 y 轴缩放为 log10 时,y 轴标签消失。这是用于创建绘图的代码; “概率”调用是指使用上述 Stackoverflow 解决方案进行概率轴缩放:
# Step 1: load the needed pacakages
import numpy as np
import matplotlib.pyplot as plt
from numpy import ma
from matplotlib import scale as mscale
from matplotlib import transforms as mtransforms
from scipy.optimize import curve_fit
# Step 2: Load up some files and specify variables
# I have not included this part of the code b/c it works fine
# Step 3: Execute the xaxis proability scaling code referenced above
# Step 4: Create a figure
fig = plt.figure(1)
# Call the firts subplot
ax = fig.add_subplot(2,1,1)
# Create the first subplot
scatter, = ax.plot(NE,Floods,'mo')
# Grab the axes
ax = plt.gca()
# Set the axis lables
ax.set_ylabel('Discharge in CMS')
ax.set_xlabel('Non-exceedance Probability')
#Adjust the yaxis format
ax.set_yscale('log')
ax.set_ylim((0.01, 1000))
plt.tick_params(axis='y', which='major')
ax.yaxis.set_major_locator(FixedLocator([0.1,1,10,100,1000]))
# Specify the xaxis tick labels
points = np.array([0.1,1,2,5,10,20,30,40,50,60,70,80,90,95,99,99.9])
# Set the x-axis scale, labels and format
ax.set_xscale('probability', points = points, vmin = .01)
xlabels=points
ha = ['right', 'center', 'left']
ax.set_xticklabels(xlabels, rotation=-90, ha=ha[1])
# Specify no grid
plt.grid(False)
# Show the plot
plt.show()
结果图如下 - 请注意缺少 y 轴刻度或刻度标签:
如果您能提供任何帮助,我们将不胜感激。谢谢。
最佳答案
感谢欧内斯特的存在的重要性。我在建议的链接中找到了一个可行的解决方案:
set ticks with logarithmic scale
代码修改是用设置 yticks 和 Formatter 的调用来替换 FixLocator 调用及其上面的调用。这是原始代码和修改后的代码
原始代码:
#Adjust the yaxis format
ax.set_yscale('log')
ax.set_ylim((0.01, 1000))
plt.tick_params(axis='y', which='major')
ax.yaxis.set_major_locator(FixedLocator([0.1,1,10,100,1000]))
修改后的代码如下:
#Adjust the yaxis format
ax.set_yscale('log')
ax.set_ylim((0.01, 1000))
ax.set_xticklabels(["0.01", "0.1", "1", "10", "100", "1000"])
ax.get_xaxis().set_major_formatter(plt.ticker.ScalarFormatter())
这是修改后的代码的结果图:
问题已得到解答。再次感谢。
关于python - yaxis标签不显示自定义xaxis概率尺度python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41797385/
我正在绘制开尔文曲线。 我想让左边的 yaxis 以开尔文显示单位,右边的 yaxis 以摄氏度显示单位,并且都四舍五入到最接近的整数(所以刻度不对齐,因为 TempK=TempC+273.15) f
您好,我有一个 Highcharts 图表,它是一个具有两个不同 y 轴的折线图。左边一张图形%,右边一分钟。我想将左侧“硬编码”为“0%、20%、40%、60%、80%、100%” 这是我的代码
有什么方法可以将 yaxis 格式化为我想要的格式。 事实上,有时在 yaxis 上,数据在右侧显示为 (k) 而不是千。 我想删除(k)。我该怎么做? 我想要的 yaxis 图像: 最佳答案 您可以
我在处理图表时遇到问题,其中图表的高度未缩放以填充该区域。图表对象本身正确缩放到容器 div 中,是 yAxis 本身卡在收缩状态。我相信这与使用较小的数字有关,但我不是 100% 确定 任何指导将不
我正在使用 Highstock 绘制图表。 它显示许多系列,yAxis 是自动计算的,以显示添加到图表中的每个系列。 但是我的一个系列比其他系列更重要。所以我想知道是否可以只根据一个系列来计算我的 y
在下面的代码中,我创建并调用 x 和 y 轴 d3 元素作为 svg 组: var svg = d3.select("#right-section").append("svg").attr("widt
我写下了一段代码,用于根据包含 40 行和 5 列的数据集绘制命中图。数据是从下到上绘制的。 如何更改它以便我的数据绘图从上到下开始? 我使用了 plt.invert_yaxis() 但它显示错误:
我希望 yAxis 标签不要溢出,也不要覆盖在绘制的图表之上。正如您从示例中看到的那样,它们执行以下操作: Highcharts.chart('container', { chart: {
如何去除蓝色部分? import altair as alt from vega_datasets import data iris = data.iris() alt.Chart(iris).mar
我正在尝试在 Highcharts 中设置显示当前 y 轴值并将其突出显示的功能。 下面是一个示例,在这个图表(即 Highcharts)中,您将看到水平黑线,其中带有黑色标签选择的当前值。 关于如何
我们的图表包含多个系列。我们一次只允许一个系列在图表中可见。当图表首次加载时,我们将 yAxis 的标题设置为 series[0].name: chart { ... events: { lo
我需要在yaxis中隐藏标签-200,请问有什么方法可以隐藏第一个yaxis标签吗?所以yaxis标签结果会是[empty] ,0, 200, 400, 600, 800 最佳答案 我所做的是为负值返
我需要在yaxis中隐藏标签-200,请问有什么方法可以隐藏第一个yaxis标签吗?所以yaxis标签结果会是[empty] ,0, 200, 400, 600, 800 最佳答案 我所做的是为负值返
我想要在我的 Highcharts 中有一个额外的工具提示,它将显示 yAxis 值。我正在谈论的这些工具提示您已经在许多 ohlc 图表中看到过。为了演示目的,我使用绘画工具制作了它。 如果您在右侧
我有这样一个数据集: CT, CA, GA, TX, Year, Month 1, 1, 2, 4, 2016, 03 2, 1, 3, 5, 2016, 03 状态列下的数字对应于出现的次数。然后我
我对 Highcharts 有疑问。 我想显示每个 yAxis 标签,但默认情况下 Highcharts 隐藏我一半的标签。 图形的高度是固定的,类别的数量是可变的,因此增加高度不是解决方案。 我有一
我正在做 D3 的基本条形图教程,但 yAxis 的刻度线没有显示,即使线显示了。这个问题被问了很多,但我仍然没有找到适合我具体情况的答案。这是我的代码: .axis text { font
jsfiddle 我正在使用 d3 绘制水平条形图,但在垂直对齐 y 轴上的文本时遇到问题。 这是导致问题的代码: .attr('transform', function(d) { var n
如何在同一行上对齐两个 Highcharts yAxis? 我在同一页上有两个图表,一个在另一个下面。在 highcharts 中有没有办法指定两个图表的 yAxis 从同一行开始? 实际: 预期 提
My current chart 刚开始使用 HighCharts。我绘制的股票价格在一天内在 1,598 美元和 1,601 美元左右波动。变化显然都很小——但价格在变化——它不应该是一条直线。 H
我是一名优秀的程序员,十分优秀!